wSSSSSSsSy.
Sped. in Abb. Postale Gr. 111/70% - Anno IV Numero 28 - Luglio/Agosto 1986 • L. 6.000
Adesso Musica
Nota per nota il miglior software
per dilettanti e professionisti
Vincere a Gin
Il punteggio in un minuto
Radion La grande
lotta contro il tiranno
Accessori Ecco il
cronometro stampagiri
Planetario Tutti
i segreti delle stelle
Giochi Prova con
la scatola atomica
Spese e provviste
Il frigorifero sotto controllo
Text file Un’utility
per gestirli meglio
Grafica Animazione
con effetti sorpresa
5
La rivista per Apple II
e Macintosh hi
1
f--
II
àkarim
Sped. in Abb. Postale Gr. 111/70%
Il mensile con disco programmi per Apple II
SUMMERGAME
. 0
Meduse
e paesaggi
acquatici per
il gioco della
sopravvivenza
estiva
TEST
Ce l’hai la stoffa
per emergere in azienda?
Scopri quanto sai rischiare
pur di vincere
'TINTARELLA
Vellutata, preziosa,
ambrata: l'abbronzatura
con il computer per
la tua estate al mare
Millenote. A proposito di musica, come farne a me¬
no in un gioco o nella presentazione di un programma?
Ecco una routine per comporre brani lunghi fino a sei
minuti, con numerosi effetti particolari.
Gin. E' il gioco di moda: una scalaquaranta rivista e al¬
quanto complicata, resa entusiasmante. Per calcolare
i punti, però, ci vogliono pazienza e amor di calcolo.
Oppure un programma che...
Grafica. La gestione delle figure a blocco riserva an¬
cora qualche sorpresa: l'animazione veloce senza
scambio di pagina, per esempio. Ecco come si fa,
quando si fa e quello che non si deve fare.
Le rubriche: 6 -Applichi
8-Applicosa
38-One - Liners
45 - Mac News
90 -Applettere
92 -Appiihelp
93 - Disk Service
Planetario, pag. 34
sommario
Adesso musica. In un crescendo inarrestabile, l'in¬
formatica musicale ha messo tutti in grado di capire e
comporre musica. Merito anche del software, sempre
più ricco e professionale.
Reset. Un aiuto per chi programma in MS Basic e vuo¬
le risparmiare un po' di tempo: questa utility breve ma
preziosa consente il resettaggio automatico dei menù
dopo la correzione di un programma.
Planetario. La notte sul video si muove come quella
vera. Potete indicare una stella per saperne il nome, o
cambiare due dati per vedere il cielo di un'altra città, o
stare a guardare, o stampare...
Adesso musica, pag. 10
Scatola nera. Bombardate di atomi la scatola chiu¬
sa e studiate gli angoli di riflessione; potrete dedurre
le posizioni degli atomi che stanno dentro la scatola.
Un classico tra i giochi di deduzione.
Cronometro. Un nuovo, simpatico e potente acces¬
sorio per la scrivania del Macintosh: un cronometro al
sessantesimo di secondo che sa anche stampare i no¬
mi dei tempi parziali.
Supershopper. D'estate più che mai, occhio al frigo¬
rifero! Ottimizzare acquisti e scorte è un'arte da impa¬
rare. Magari con l’aiuto di un geniale database che
stampa anche la lista della spesa.
Radìon Tyrant. Molte le guardie nascoste nella reg¬
gia di Radion: a voi scoprirle tutte, impostando una
buona strategia e segnando i risultati sull'apposita gri¬
glia. Per Macintosh.
Text file. Per fare qualche correzione a un listato, l'i¬
deale è poterlo trattare come file di testo, senza dover
uscire dall'MS Basic per caricare il MacWrite. Con que¬
sta utility non è un problema.
MacNews, pag. 45
QBOBBOB
Mac//
Un emulatore software di
Apple//+ e Apple//e per
Macintosh 512: basta
inserire il dischetto Mac// in
un Macintosh, ed eccolo
trasformato in un Apple//.
Con il Dos e il ProDos.
è un programma JRD
edito in Italia
da Editronica Srl.
Acquistalo subito.
Per ricevere Mac// basta compilare
e spedire subito questo
tagliando a Editronica Srl,
Corso Monforte 39, 20122 Milano.
V/ jft //
applicando
DIREZIONE GENERALE E AMMINISTRAZIONE
EdOftir®iraO©si srl
20122 Milano - Corso Monforte 39
Telefono (02) 702429
Telex 350132 MACORM I
Direttore responsabile
Stefano Benvenuti
Coordinamento editoriale
Francesca Marzotto
Responsabile programmi
Giorgio Caironi
Impaginazione
elettronica
Adelio Barcella
Collaboratori
Marco Gussoni
Mario Magnani
Guido Ricciardi
Ivonne Rossi
Alfonso Scoppetta
Pubbliche relazioni
Mauro Gandini
Tutti i diritti di riproduzione e traduzio¬
ne di testi, articoli, progetti, illustra¬
zioni, disegni, listati di programmi,
fotografie ecc. sono riservati a termi¬
ni di legge. I programmi pubblicati su
Applicando possono essere utilizza¬
ti per scopi privati, scientifici e dilet¬
tantistici, ma ne sono vietati sfrutta¬
menti e utilizzazioni commerciali. I
manoscritti, i disegni e le foto, anche
se non pubblicati, non si restitui¬
scono.
Servizio abbonamenti: Editronica
srl, Corso Monforte 39, Milano - Con¬
to Corrente Postale n. 19740208 - Li¬
na copia L. 6.000. Arretrati L. 7.000.
Abbonamento 10 numeri (senza do¬
no) L. 50.000 (estero L. 70.000). Ab¬
bonamento 10 numeri più le Pagine
del Software e dell'Hardware Apple
L. 60.000 (estero L. 80.000). Periodi¬
co mensile - Stampa: Poligrafico Pie¬
montese srl, Casale Monferrato (AL) -
Distribuzione esclusiva per l’Italia
A.& G. Marco spa, Via Fortezza 27,
Milano, Tel. 02/25261, telex 350320 -
Fotolito: Mediolanum Color Separa-
tion, Via Marcona 3, Milano. © Co¬
pyright 1986 by Editronica srl - Regi¬
strazione Tribunale di Milano n. 24
del 15.1.1983 - Pubbl. inf. al 70%.
Mozart ripeteva al pianoforte, alla perfezione, qual¬
siasi brano ascoltato anche una volta sola: ai suoi tem -
pi non esistevano né registratori né giradischi. Ma era
in grado anche di trascriverlo pari pari sul pentagram -
ma, senza neppure aver mai visto lo spartito originale.
Pensate: nota per nota, a mano. Ebbene, anche se og -
gi esistono musicassette e compact disc, uno dei più
grossi problemi delle case editrici musicali è ancora
quello della stampa degli spartiti: le note non si posso -
no comporre né col piombo delle vecchie tipografie,
né con la fotocomposizione. E volete sapere chi le sta
aiutando? Il Macintosh, con la miriade dei suoi pro¬
grammi musicali, e la stampante Laser.
Ma scrivere le note sullo schermo grazie al mouse e
poi stamparle ad altissima qualità in un battibaleno
non è tutto: il Mac sta diventando lo strumento prefe¬
rito di qualsiasi musicista perché offre opportunità i -
naudite in tutta la storia della musica. Pensate se Cho -
pin, Wagner o Verdi avessero potuto, anziché strim -
pellare con un dito e poi faticosamente annotare, po¬
sare le note sul rigo e poi farsele suonare direttamente
da un'orchestra di sedici strumenti, modificare sul vi -
deo crome e biscrome e tornare a riascoltare il tutto
prima di procedere...
La rivoluzione che il computer sta introducendo nel
mondo della musica è in realtà forse ancor più clamo -
rosa di quella che avanza negli uffici. I non addetti ai
lavori ne hanno percepito finora solo qualche aspetto
superficiale: si vedono in giro più tastiere di sintetiz¬
zatori che sassofoni o cornette tradizionali. Ma le tra -
sformazioni sono ben più fondamentali: oggi si pos¬
sono inventare nuovi suoni, disegnandone la curva; si
possono sintetizzare suoni antichi, rivisitandone gli
splendori; e si possono suonare intere orchestre, ma -
gari in stereofonia, senza nessun altro strumento in
mano oltre alla tastiera del computer.
Di questa rivoluzione dolcissima Apple II e Madnto -
sh sono fra i protagonisti principali. Ecco perché Ap -
plicando dedica alla musica la copertina di questo nu -
mero, con una guida al miglior software per profes¬
sionisti e dilettanti del pentagramma.
Stefano Benvenuti
UNIONE STAMPA
PERIODICA ITALIANA
5
fichi
Mac e gli amici
della Versilia
"Preparare le mille in¬
formazioni necessarie al
turista, aggiornarle e
stamparle in un opuscolo
ben curato ed elegante è
stato proprio un lavoro a-
datto al Mac. Così come
lo è stato realizzare i no¬
stri giornali: La Cop¬
piola, L'Imbarcatello e
CiAlVe , organizzare e cu¬
rare la dodicesima edizio¬
ne del Premio satira poli¬
tica e redigerne il catalo¬
go". Bella, gioviale, lu¬
minosa, parla con giusto
orgoglio dei suoi più re¬
centi prodotti, nati dall'in-
tuizione di potenzialità
che non è facile cogliere:
"Il prodotto editoriale, so¬
prattutto se di dimensio¬
ni ridotte, è in grado più
di ogni altro di mettere
in risalto le possibilità di
un computer altamente
creativo come il Mac".
Applicando dunque
non è più sola: che nel
Mac c’è una tipografia a-
desso l’ha scoperto anche
lei, la maliarda dallo
sguardo azzurro mare che
con il suo recente exploit
editoriale ha dimostrato
di essere geniale come uh
direttore, colta come una
giornalista colta, brava
come una redattrice bra¬
va, instancabile come un
caporedattore, gentile ed
efficiente come una segre¬
taria di redazione...
Ma questa lei dalle mil¬
le virtù chi è?
Le ha dato il nome un
forte del diciottesimo se¬
colo, attorno al quale ve¬
nivano accatastati un tem¬
po i marmi pronti per
l’imbarco e si affollano
oggi i turisti, richiamati
da un mare bellissimo e
famoso, da un paesaggio
dolce, da una vitalità cul¬
turale densa di iniziative
e sorprese. E' Forte dei
Marmi.
Una città, tutta intera,
è il personaggio Macinto¬
sh che Applicando ha in¬
tervistato in questo nume¬
ro. Una città famosa per
le sue attrattive turistiche
ma non meno per le sue
molte e fortunate iniziati¬
ve culturali. E, adesso,
senso di appartenenza al¬
la città e un vivace deside¬
rio di dimostrarne le pos¬
sibilità". Franco Calotti,
Emilio Tarabella, Lilio
Tarabella e gli altri prota¬
gonisti della rivoluzione
I primi
del mensile fortemarmino "L'Imbarcatello", diretto da
Guerrino Viti e realizzato interamente con il sistema
Apple Edit. A destra, "La Coppiola", il foglio di una
contrada di Forte dei Marmi.
FESTIVAL della
CANZONE diContra
4 e S Aprile I486 - ore 21
PASTICCERIA - SEMIFREDDI - GELA - *
destinata a un nuovo suc¬
cesso per avere saputo in¬
tuire l'importanza del¬
l'evoluzione tecnologica
in campo editoriale. Ma
come si è potuto verifica-
re questo slancio colletti¬
vo, quando di solito la di¬
sponibilità al rischio e al¬
l’innovazione è un feno¬
meno che interessa pochi
e isolati individui?
"Vivere a Forte dei
Marmi non è come vive¬
re in un posto qualunque,
perché è una città a misu¬
ra d'uomo, senza indu¬
strie, senza inquinamen¬
to, senza traffico; eppure
al contempo è un centro
culturale vivissimo e ri¬
conosciuto. Ecco perché
si è formato negli abitan¬
ti, con orgoglio, un forte
editoriale in Versilia spie¬
gano così questa bella fa¬
vola (ma non va trascura¬
ta l'importanza di un
sindaco amico dell'inno¬
vazione e di un Apple
Center, come quello loca¬
le, veramente in gam¬
ba...).
E quello che non dico¬
no loro, basta uno sguar¬
do ai loro giornali per ca¬
pirlo.
Vivere Forte dei Mar¬
mi , 50 pagine con foto¬
grafie a colori, è il vade¬
mecum del fortunato turi¬
sta che ha scelto di tra¬
scorrere qui le sue vacan¬
ze: tutte le informazioni
per dormire, mangiare, gi¬
rare, vedere, nuotare, im¬
parare, giocare, vivere
Forte dei Marmi sono sta-
6
te raccontate dal Mac, in
quattro lingue, diretta-
mente allo stampatore, e
il risultato è di livello de¬
cisamente gradevole e
professionale.
L'Imbarcatello è "la
nuova fortemarmina crea¬
tura di carta stampata",
come si autodefinisce nel¬
la lettera d’invito per la
sua presentazione ufficia¬
le, avvenuta il 14 giugno
di fronte a una fitta pla¬
tea di autorità, giornalisti
e intellettuali.
Realizzato integral¬
mente con il sistema Ap¬
ple Edit, è un mensile "o-
ve si raccontano e si a-
scoltano fortemarmine
faccende di ieri, di oggi e
di domani (con eventuali
riferimenti a quelle degli
altri che, più o meno di¬
rettamente, hanno a che
fare con la “cosa” Forte
dei Marmi)".
Anche gli organizza¬
tori del Premio Satira Po¬
litica Forte dei Marmi,
di dodecennale e illustre
tradizione, si è avvalso
quest'anno dell’ausilio del
Macintosh per l'organiz¬
zazione e la stesura dei
suoi bei cataloghi.
Il premio, di respiro in-
Qui sopra: Franco Calotti con alcune delle sue
realizzazioni: l'opuscolo "Vivere Forte dei Marmi"
e i due cataloghi del "Premio Satira Politica".
A sinistra: la presentazione del mensile fortemarmino
"L'Imbarcatello". Al microfono Emilio
Tarabella, redattore unico; seduto all'estrema
sinistra, in marrone, il sindaco, prof. Fidia Arata.
temazionale, promuove
attività durante finterò ar¬
co dell'anno, interessando
di sé disegnatori, giornali¬
sti e intellettuali di tutto
il mondo. Sciascia, Biagi
e Montanelli; Forattini,
Angese e Starno; Beni¬
gni, Fo e Arbore sono al¬
cuni dei campioni della
satira premiati in questi
anni.
E poi c'è il foglio di
contrada La Coppiola , c’è
in preparazione una Gui¬
da Turistica per itinerari
toscani, c’è il giornale O-
roptero curato con Mac
dal Dott. Medesani. E c'è
infine una ricca rivista a
colori, sul tennis, del Cir¬
colo Albergatori Versilie-
si, che viene realizzata in¬
teramente con l'Apple II:
in tipografia, anziché con
le pile di manoscritti, i
fattorini ci vanno con i
floppy disk.
E poi, e poi? Da una
città così ci si può aspet¬
tare qualcos'altro anco¬
ra...
Forse presto sentiremo
parlare di nuove iniziati¬
ve, magari proprio sul¬
l'informatica applicata?
7
ag)[ò)[fìcosa
La griffe
della mela
La Apple, come molti
sanno, na firmato con la
mela iridata una collezio¬
ne di oggetti dal design o-
riginale, utili e diverten¬
ti. Della Apple colle-
ction fanno parte penne,
portadischetti eportachia-
vi, ma anche asciugama¬
ni da spiaggia, magliette,
cravatte e maglioncini. E
per chi è abituato a sorbi¬
re il caffè mentre lavora
al mouse o alla tastiera
non manca una tazza, na¬
turato ente personalizzata
dalla griffe Apple. Come
molti invece non sanno,
tutti questi oggetti posso¬
no essere richiesti ai mi¬
gliori computer shop o
direttamente alla Apple.
L'informazione
corre sul filo
Con la crescente diffusio¬
ne degli elaboratori perso¬
nali tra manager e profes¬
sionisti è cresciuto anche
l'utilizzo di banche dati,
ormai accessibili a chiun¬
que possieda un modem.
Proprio alle banche dati è
dedicata una nuova pub¬
blicazione, realizzata dal¬
la Hewlett-Packard Italia¬
na in collaborazione con
un gruppo di esperti del
settore. In forma sinteti¬
ca e facile da leggere an¬
che per i non addetti ai la¬
vori vengono descritte le
modalità di collegamento
e quelle di interrogazio¬
ne. Le informazioni prati¬
che comprendono un e-
lenco degli indirizzi delle
più importanti e interes¬
santi banche dati italiane,
europee e statunitensi e u-
na tabella riassuntiva in
cui le banche dati posso¬
no essere individuate in
base alle rispettive specia¬
lizzazioni. La pubblica¬
zione, intitolata Banche
dati: Vinformazione è a
portata di mano , è gratui¬
ta e può essere richiesta
direttamente alla Hewlett
Packard Italiana, Servizi
Documentazione, via G.
di Vittorio 9, Cemusco
sul Naviglio, Milano (te¬
lefono 02/923691).
Un tris
da stampa
Le nuove stampanti Oki
della serie 290 hanno tut¬
te le carte in regola per
farsi notare nell’affollato
panorama del settore. I
tre modelli che compon¬
gono la linea (siglati ri¬
spettivamente MI 292,
MI 293 e MI 294) di¬
spongono infatti di testi¬
ne a 18 aghi e sono in
grado di offrire prestazio¬
ni di livello superiore. I
primi due modelli hanno
una velocità di stampa di
La casa della
mela
A scuola di
Cobol
I personal computer at¬
tuali hanno una potenza
di calcolo superiore a quel¬
la raggiunta dai più gros¬
si elaboratori in servizio
negli anni 60: per questo
motivo in questi ultimi
anni linguaggi ormai sto¬
rici come Fortran o Co-
boi sono stati rivisitati,
per renderli utilizzabili an¬
che da chi lavora con un
personal. Cobol per mi¬
crocomputer , un libro edi¬
to recentemente dal Grup¬
po Editoriale Jackson,
tratta proprio di questo ar¬
gomento, sottolineando
l’importanza di questo lin¬
guaggio nel campo gestio¬
nale e amministrativo.
II testo consente uno
studio completo della pro¬
grammazione in Cobol
con l'ausilio di qualsiasi
personal computer (pur¬
ché dotato di compilatore
Cobol). Cobol per micro¬
computer, di R. Ashley e
J. N. Femandez, 556 pagi¬
ne, costa 35 mila lire.
Con un Apple II e un
po’ di dimestichezza con i
circuiti elettronici è possi¬
bile creare un sistema mo¬
dulare intelligente, desti¬
nato a controllare rim¬
pianto antifurto di casa,
quello di illuminazione e
quello di riscaldamento, il
telefono. A raccontare co¬
me sia possibile automa¬
tizzare la propria abitazio¬
ne con un personal com¬
puter della mela è John
Blankership, nel libro Ap¬
ple house : passando da un
capitolo all'altro si sco¬
pre che la casa può accet¬
tare ordini impartiti a vo¬
ce (e rispondere): solo
per fare qualche esempio,
può accendere il televiso¬
re nel momento in cui ini¬
zia il programma preferi¬
to, sintonizzare la radio
sui notiziari, spegnere le
luci nei locali in cui l’illu¬
minazione è superflua. Ap¬
ple house , 204 pagine, è
edito dalla Franco Muzzio
& C. e costa 18 mila lire.
200 caratteri al secondo
in uso normale e di 100
caratteri al secondo in let-
ter quality. La MI 294,
invece, mantiene i 100
caratteri al secondo nel
modo letter quality, ma
è in grado di raggiungere
i 400 nell'uso normale.
Tra gli optional disponi¬
bili si segnalano l'alimen¬
tatore di fogli singoli
(per l'Ml 292 e l’Ml
293), un buffer da 32 ki-
allibri-
appiè house
8
lobyte e un nastro a colo¬
ri a cartuccia. Un altro
punto a favore di questo
tris di stampanti, prodot¬
te da un impianto com¬
pletamente robotizzato, è
l’affidabilità: sono in gra¬
do di funzionare senza
problemi per circa 4 mila
ore, chiedendo interventi
di manutenzione limitati
in media entro i 15 mi¬
nuti. Infine i prezzi. Il
modello 292 costa 1,875
milioni di lire, il 293
2,2 milioni e il 294, con
interfaccia seriale Ibm e
Apple, 2,975 milioni.
Per ulteriori informazio¬
ni è possibile contattare
il distributore esclusivo
per l’Italia delle stampan¬
ti Oki, la Technitron
(l’indirizzo è Palazzo
E/2, Milanofiori, Assa-
go, Milano).
Knowledge»
Management
ess*
LeP ,o,pe«"' eapert
, e cr'Ol°e' e
Il management
post-industriale
Gianfranco Minati, e-
sperto nel campo della
computer Science e dei
problemi della società
post-industriale ha fatto
il punto della situazione
del management nell'era
della tecnologia dei com¬
puter in un libro dal tito¬
lo insolitamente lungo
( Knowledge, manage¬
ment, computer: tre di¬
mensioni della società
post-industriale). In un
linguaggio che resta sem¬
pre accessibile, nonostan¬
te la complessità dei temi
trattati, Minati affronta i
problemi legati al nuovo
ruolo del manager: trasfor¬
mare in ricchezza la cono¬
scenza. Ogni capitolo,
poi, è integrato da grafi¬
ci, illustrazioni, dati e
cenni storici. Knowledge,
management, computer:
tre dimensioni della so¬
cietà post-industnale è
edito dalle Edizioni Soiel
International di Milano
(pagine 245).
Economia
e finanza personale
in Apple Basic
La finanza
personale
Chi vuole usare in mo¬
do personalizzato il pro¬
prio Apple II, troverà in
Economia e finanza in Ap¬
ple Basic una sessantina
di brevi programmi che
mettono immediatamente
in grado di tenere sotto
controllo l'economia do¬
mestica, il calcolo di mu¬
tui, indirizzari e così via.
Per fare funzionare le
routine proposte dal volu¬
me bastano poche cono¬
scenze di Basic: il libro,
poi, offre la possibilità
di riunire le varie routine
in un unico programma,
organizzato a menù, attra¬
verso il quale accedere al¬
le varie funzioni. L'obiet¬
tivo del volume è, insom¬
ma, aiutare il lettore a
scoprire tutta la potenza e
la flessibilità dell'Apple.
Economia e finanza per¬
sonale in Apple Basic , di
Stanley R. Trost (172 pa¬
gine), è edito dalla Fran¬
co Muzzio & C. Costa 18
mila lire.
Lotus
all'Italiana
La Lotus Development
Corporation, la software
house che ha prodotto
Jazz, il potente sprea¬
dsheet per Macintosh, ha
aperto una filiale italia¬
na. ”La Lotus ha deciso
di operare direttamente
sul mercato italiano per
poterne meglio valutare
le potenzialità”, dice Pe¬
ter McQueen Dove, scoz¬
zese, 29 anni, responsabi¬
le insieme a Giovanni
Catalfamo della neonata
filiale. ”Siamo infatti
convinti che l’Italia nei
prossimi anni si trasfor¬
merà in uno dei più forti
consumatori di soft¬
ware”. La Lotus Develo¬
pment Italia ha sede a Mi¬
lano, in via Melzi d'Eril
29 (tei. 02/3458657).
A prova
di curiosi
Per consentire di tenere
sempre in perfetto ordine
i floppy disk destinati a
lavorare con l’Apple di ca¬
sa, ma anche videocasset¬
te, fotografie e musicas¬
sette, la milanese Mielco
ha messo a punto un
contenitore, battezzato
Posso. E' realizzato con
un robusto materiale pla¬
stico ed è composto da e-
lementi modulari che pos¬
sono essere assemblati a
piacimento: ogni elemen¬
to, poi, può essere dotato
di una serratura per pro¬
teggere i supporti magne¬
tici da indesiderate curio¬
sità. L'indirizzo della Mi¬
elco è: via Prampolini 4,
Milano, tei. 02/680872.
Quasi 32 bit
per Apple II
Si chiama Meta 32 ed
è stato creato per chi vuo¬
le anche dall’Apple II le
prestazioni tipiche dei
personal a 16 o a 32 bit:
questo emulatore, scritto
in assembler, può essere
richiamato sia dall'Apple¬
soft sia dalle routine del
monitor e mette a dispo¬
sizione circa 200 istruzio¬
ni per gestire i 32 bit e i
16 bit alti e bassi dell’ac¬
cumulatore e dei registri
X è Y. In più ci sono i ri¬
chiami di subroutine e i
ritorni da subroutine con¬
dizionati e la funzione lo¬
gica Not. Meta 32 è pro¬
dotto dalla Micro Proget¬
tazione Avanzata (l’indi¬
rizzo è: piazza Merolli
44, Roma, telefono 06/
5235376) e costa 508 mi¬
la lire, Iva esclusa.
9
Adesso musica. Per chi sa che studiarla e scriverla è faticosa professione,
per chi la vive solo come piacere, per chi vuole improvvisarla
alla tastiera... Adesso musica. Per tutti quelli che hanno un Macintosh
o un Apple II e voglia di novità, di brio, di qualità.
Un’orchestra
sullo schermo
Forse è uno dei campi in cui il per¬
sonal ha spalancato più porte, abbat¬
tuto più intralci, deriso più incredu¬
li, conducendo una sua proficua, sim¬
patica e inattesa rivoluzione cultura¬
le: musica per tutti, a tutti i livelli.
Musica da tesi di laurea, musica per
un’allegra serata, musica dagli effetti
stravaganti, dalle toccanti dissonan¬
ze, dalle audaci arrampicate; musica
per imparare, per sorridere, per com¬
porre.
Agli iperbolici livelli dei profes¬
sionisti del pentagramma, il perso¬
nal aiuta a scriver musica, stampa
gli spartiti, suggerisce nuovi effetti.
E si interfaccia con strumenti musi¬
cali elettronici a generare nuovi suo¬
ni, nuove elaborazioni e persino nuo¬
vi strumenti dalle tonalità sorpren¬
denti. Presta poi opera docile e pre¬
ziosa in fase di studio, per esaminare
i pezzi scritti da illustri e meno illu¬
stri musicisti, scomporli, analizzare
e confrontare differenti brani.
A livelli più casarecci, e sorprende
ancora di più, fa da mentore a dilet¬
tanti appena appena infarinati da un
do-re-mi, avvicina alla musica fior
di profani e persino di stonati che fi¬
nora l’hanno considerata territorio e-
sclusivo degli addetti ai lavori.
Rivela, meravigliosamente, che il
nostro rapporto con la musica può
non limitarsi a un passivo click sul
pulsante dell’autoradio, può non es¬
sere solo un indossar di cuffie:
con lei si può giocare
un ruolo attivo, inedito,
si può da pigri fruitori di
messaggi sonori divenire,
con un capovolgimento inaspet¬
tato, autori di note. Merito, indiscus¬
so, dei programmi disponibili sul
mercato, che sono molti, sono intel¬
ligenti e belli e consentono soprat¬
tutto un approccio totalmente interat¬
tivo. Una singola nota o un intero
pezzo musicale visualizzati sul mo¬
nitor del computer vengono anche c-
scguiti, dando la possibilità di ap¬
prendere molto velocemente il signi¬
ficato della scrittura musicale; le no¬
te, digitate da tastiera, rivelano subi¬
to il suono corrispondente. Si può
scoprire in fretta, grazie a ottime si¬
mulazioni, quali differenze corrono
tra strumento e strumento. Si può
comporre, insomma, e capendo quan¬
to si fa.
Ma perché lo si fa? Non è certo
facile rispondere. La musica non è
come un'automobile, che tutti sanno
a cosa serve... La musica in realtà
non serve proprio a nulla: per questo
è indispensabile.
Ouverture: nasce
l'informatica musicale
Scienza nuova, nuovissima, l’in¬
formatica musicale compare negli an¬
ni Sessanta, nei centri studi di alcu¬
ne università americane, e con l'av¬
vento del personal giunge a toccare
in tempo incredibilmente breve la
sua massima tonalità.
L'Apple II, con la sua struttura a-
pcrta, si qualifica subito come otti¬
mo strumento per l'impostazione di
un atteggiamento professionale nel
campo musicale: ben presto si produ¬
cono tastiere complete di particolari
interfacce e software per il suo stan¬
dard. Le possibilità che questi ibridi
danno al musicista sono abbastanza
limitate, anche se, alla loro appari¬
zione, sembrano avere dello straordi¬
nario. Si tratta soprattutto di applica¬
zioni del tipo Controllori program¬
mabili, qualche volta con possibilità
limitale di elaborazioni del suono.
Per proseguire sulla strada del pro¬
fessionale, il mercato richiede però
qualcosa di più, qualcosa che consen¬
ta di effettuare collegamenti tra mac¬
chine anche differenti: occorre uno
standard. Nei primi mesi del 1982
nasce così la Musical Instrument Di¬
gital Interface, meglio nota col no¬
me di MIDI, praticamente la RS232
della musica. Per Apple esistono
due versioni di questa interfaccia: u-
na scheda da inserire internamente
nel caso di Apple Ile e una scheda e-
sterna da col legare alla porta Modem
nel caso dell'Apple Ile o del Macin¬
tosh.
Anche con l’avvento degli stan¬
dard, l'Apple II rimane
sulla brec- >
10
eia, soprattutto perché gli slot sono
di grande aiuto per i progettisti di in¬
terfacce MIDI e relativo software,
che trovano disponibili subito tutti i
segnali necessari. Interessante il fat¬
to che una volta tanto in Italia non
siamo stati a guardare: è italiana, e
pochi lo sanno, una delle più impor¬
tanti società produttrici di hardware
e software per Apple II, la Lemi di
Torino, impostasi da diversi anni co¬
me produttore mondiale di interfacce
MIDI per Apple II complete di so¬
ftware per le più svariate applicazio¬
ni e per il funzionamento con tastie¬
re di diverse marche, tra le più cono¬
sciute del mercato. Naturalmente tut¬
ti i programmi della Lemi, per la lo¬
ro esportabilità, sono in lingua in¬
glese; proprio per questo molti ne i-
gnorano la nazionalità italiana.
Apple II:
crescendo, con brio
Fatte così le lodi della produzione
nostrana, non si può scordare però
che esiste, come è naturale, anche u-
na vastissima produzione anglosasso¬
ne, sia di software sia di hardware,
che rende ancora più appetibile
MIDI: uno standard per suonare
Musical Instrument Digital Interface: questo il significato della sigla più
utilizzata nell'ambiente informatico musicale. Dopo alcuni anni di anarchia
pressoché completa, alla metà del 1981 qualcuno pensò che era ora di met¬
tere un po' di ordine nel bailamme di segnali digitali che viaggiavano dai
computer alle varie tastiere. Già a marzo dell'anno successivo l'accordo tra
i produttori era operante, ma solo dopo un altro anno la Sequential Circuits
inaugurava il mercato MIDI con il Prophet 600, prima macchina con inter¬
faccia MIDI incorporata.
Vediamo brevemente come funziona un’interfaccia MIDI. Il connettore
standard utilizzato è il normale Din a 5 poli. Una qualsiasi apparecchiatura
dotata di tale interfaccia possiede normalmente tre di questi connettori
(molto raramente si trovano tastiere che ne hanno solo due): MIDI IN, MI¬
DI OUT, MIDI THRU. MIDI IN è un'entrata che consente di ricevere le infor¬
mazioni in arrivo dal computer o da altri strumenti musicali. MIDI OUT ha
invece la funzione di inviare queste informazioni. All'uscita MIDI THRU ri¬
troviamo esattamente lo stesso segnale che entra da MIDI IN: serve per col¬
legare più apparecchiature insieme, ovvero un computer a più tastiere; que¬
sta funzione è quella mancante negli strumenti a soli due connettori, men¬
tre alcuni strumenti ne hanno addirittura tre o quattro per facilitare i collega-
menti. I dati che viaggiano attraverso le Interfacce MIDI possono essere di
quattro formati: Poly, Mono, Omni On e Omni Off. Mono e Poly consento¬
no di lavorare in monofonia (per esempio con un solo tipo di suono per o-
gni canale) o in polifonia. Omni On e Off consentono allo strumento di ri¬
conoscere rispettivamente tutti i segnali che transitano o solo quelli desti¬
nati al canale di ricezione attivato in quel momento.
Le informazioni che viaggiano attraverso le interfacce MIDI sono tra le
più complesse di tutti i sistemi di trasmissione dati: informazioni relative
ai tipi di strumenti da selezionare attraverso i differenti canali, note per o-
gni canale, controllo dei toni, degli effetti speciali (per esempio il vibra¬
to) e dei pedali di espressione nei pianoforti elettronici, oltre logicamente
a segnali di sincronismo che permettono agli strumenti di suonare all’uni¬
sono. Ma, caratteristica praticamente assente in altri tipi di interfacce digi¬
tali, è la possibilità per gli strumenti di riconoscere solo il loro standard
di segnali, ignorando quelli differenti. Così ogni costruttore si è creato dei
messaggi esclusivi che vengono interpretati dalle sue macchine e non com¬
portano alcuna reazione inaspettata dalle altre.
Tra le cose curiose dell’interfacciamento MIDI è da segnalare la trasmis¬
sione via radio dei dati: la Lemi di Torino produce un trasmettitore portati¬
le e un ricevitore fisso che consentono di trasmettere via etere qualsiasi se¬
gnale MIDI fino a una distanza di 100 metri. Così il musicista può tranquil¬
lamente portare il suo strumento in scena e nascondere il computer che gli
consente di generare virtuosismi da manuale.
Canali MIDI
simultanei
Tracce
Prodotto
Computer Interfaccia
Capacità
note
Metronon
simultanee
Modi di Codici di
Input sincronismo
udibile
visibili
Texture
e
R
8
8P
9000
R,Lp
F,M, R
V
Mix Master
e
PP,R
N/A
26
N/A
R, st. Lp
F.M
yl
DS3
+/e
Greengate
16
4Mo
N/A
R, st, Lp
F.M, R
V
yl
Future Shock & Song
+/e
Lemi
16
8P
4100
R.Lp
24
V
yl
Meta T rack
+/e
M. PP, Sn
16
16P
3000
R.Lp
O
V
yl
Key board Controll ed
e
MD, Mg, PP, Sq
16
35P
4500
R. st, Lp
M.p
V
yl
KSQ800
+/e
PP
16
4P
6000
R.Lp
M
V
yl
MIDI Sequencer II
+/e
MD, PP/MD, PP, Sq
16
16P
4250
R, st
M, 96
>/
MIDI 4 Plus
+/e
R/PP
4
4P
6000
R.Lp
M, R, 0
yl
yl
Master Tracks
+/e/c
PP
16
8P
12000
R, st, Lp
M,°
V
yl
MUSE
+/e/c
R
16
8P
6000
R
F,M
V
Studio 1,2
+/e/c
MD, PP, Sn,Sq
16
8P
5000
R, st, Lp
M, R
V
yl
MIDIComposer
Mac
As
16
4P
10000
R
yl
Studio Mac
Mac
As, MW, Op, SW
4
8Mo
2300
Rlim.st
V
Rhythm Sequencer
Mac
SW
N/A
128
50000
R. st.Lp
F.M.S
V
Deluxe Music
Mac
As, MW, Op,o
8
16P
N/A
st
Concertware+ for MIDI
Mac
As, PP
8
8P
10000
st
M, o
Musicworks
Mac
As, MN, Op
4
4P
1024
Rlim.st
Performer
Mac
As, MW, Op, SW
16
200P
50000
R, st
M
yj
yl
MegaTrack
Mac
As, MW, Op
16
32P
N/A
R, st
M
yl .
Midimac Sequencer
Mac
As,MN,MW,Op,SW
16
32P
24000
R
M
V
V
Total Music
Mac
SW
16
128P
60000
R. st, Lp
M
yl
l’utilizzo musicale dell’Apple II..
Tanto ampio è il mercato, che non
tutti i pacchetti possono essere
raccontati: ecco pertanto una rasse¬
gna dei più importanti; le caratteristi¬
che degli altri trovano posto invece
nella tavola comparativa di fianco.
• AMP 83. E’ un sequenziatore a
tempo reale e non, prodotto dalla
Lemi. AMP 83 è un programma tra
i più completi, essendo composto da
14 piste monofoniche indipendenti
che possono agire contemporanea¬
mente in ascolto e in registrazione,
più due piste che provvedono in o-
gni momento al cambio del program¬
ma e alla trasposizione. AMP 83
consente inoltre il completo control¬
lo delle singole note, sia come into¬
nazione, sia come durata e dinamica.
Ha una possibilità di stampa, ma so¬
lo in notazione numerica, e consente
di montare le diverse sequenze per la
costruzione di una composizione
completa che può essere poi memo¬
rizzata su disco. Insieme a AMP 83
vengono forniti un programma di e-
co digitale, che ritarda i segnali MI¬
DI OUT rispetto al IN, e utility so¬
ftware come programmi di Dump.
• Future Shock & Song. E'
forse il più famoso software tra i
musicisti italiani, anche perché pro¬
dotto dalla Lemi di Torino. E' un se¬
quenziatore a tempo reale con 8 cana¬
li polifonici, ma ha la possibilità di
sovrapposizione che rende il nume¬
ro dei canali infinito. Ogni canale
viene identificato con il suo stato, la
memoria consumata e il canale MI¬
DI corrispondente in uscita. Inoltre
possono essere indicati, per ogni
traccia, il tipo e la quantità delle mi¬
sure. La quantizzazione è molto pre¬
cisa e indipendente per ogni canale.
Oltre al sincronismo esterno, il pro¬
gramma ha la possibilità di generare
un metronomo con indicazione sia
visiva sia acustica. Tutte la informa¬
zioni MIDI e le note (fino a 4700,
con memoria di 64K) vengono me¬
morizzate fedelmente.
• Prophet 600 e Prophet 5.
Due software, sempre della Lemi,
che permettono di visualizzare tutti i
100 programmi memorizzati dalla ta¬
stiera Prophet 600. Quattro pagine
di cui tre grafiche consentono di vi¬
sualizzare tutti i parametri con valo¬
ri da uno a cento per i potenzimetri
e lo stato degli interruttori. Il Pro¬
phet 5 è simile al 600, ma consente
la visualizzazione dei programmi in
forma sia alfanumerica sia grafica e
possiede inoltre il dump dei program¬
mi presenti nel primo banco del
Prophet 5.
• Yamaha DX7. E’ sempre fir¬
mato dalla Lemi, che lo propone ai
possessori delfomonima, famosissi¬
ma tastiera. Tutte le funzioni vengo¬
no controllate dal computer e sono
completamente editabili. Parametri,
function page, inviluppi, algoritmi
e LFO sono visualizzati sia numeri¬
camente sia graficamente. Program¬
mi e loro parametri sono disponibili
per la stampa, dando così la possibi¬
lità di creare un archivio di suoni. Il
dischetto è completo di 128 suoni
oltre alle ROM originali.
• Song. Espansione del sequencer
Live Future Shock, ne amplia le
possibilità riducendo contemporanea¬
mente lo spazio di memoria utilizza¬
ta. La visualizzazione di 30 battute
per volta con scorrimento laterale fa¬
cilita le operazioni di editing e com¬
posizione. Molto facile da utilizzare,
la rapidità di esecuzione ne fa il sup¬
porto ideale per concerti dal vivo.
• Ensoniq Mirage. Lo scopo di
questo programma della Lemi è la vi¬
sualizzazione delle forme d'onda cam-
pionate sulla tastiera Mirage. Le for¬
me d’onda possono essere editate at¬
traverso il joystick allo scopo di
creare nuovi e originali suoni e di fa¬
cilitare il looping.
• Music Printer. Questo pro¬
gramma trasforma le tracce registrate
sul sequencer Future Shock in file u-
tilizzabili da software tipo Polywri-
ter o Lead Sheet della Passport Desi¬
gn. E' possibile così per il musici¬
sta comporre il proprio pezzo ed ela¬
borarlo attraverso la tastiera e il com¬
puter e poi stampare il tutto nella to¬
nalità desiderata con la classica nota¬
zione musicale. Chiaramente questo
software è di supporto al Live Futu¬
re Shock e al programma di scrittura
che necessita una stampante grafica.
• Roland DG. Produttrice a li¬
vello mondiale di sofisticate tastiere,
la Roland ha reso ancora più potenti
12
Display
rcucuiieui iviil/i
registrabili e modificabili
Parametri MIDI filtrati
Posizionatore
Legenda - Al: alfanumeri¬
co. As: Assimilation. AT:
after touch, av: avanti
veloce. B: entrambe note-
on e note-off. c: Apple Ile.
CH: canali. D: durata, e:
frequenza
AT
PB
PC
V
MOD SUS CH
AT
PB
PC
V
MOD SUS
iv
av
PP
pa
8-250
Al
4*
V*
4*
V*
4
4
4 *
1
1
1
1
1
1
15-4000
N, G, Al
4
4
4
V*
4
4
4
E
E
E
E
E
E
4
4
4
10
4-7000
G, Al
, V*
V*
4*
V*
V*
V*
4
Apple Ile.E: modo Edit. G:
grafico, g: globale. 1: mo-
do Input, iv: indietro vel-
40-250
G, Al
4
4
4 *
4
4
4
V*
1
1
1
4
20-300
Al
V*
1
V
oce. lim: limitato. Lp: in
loop. M: MIDI clock, m: Mi-
metics. MD: Music Data,
md: display principale.
Mo: monofonico. MOD:
39-1000
Al
4*
V*
4*
V*
V*
V*
V
1+
1+
1+
1+
1+
1+
60-200
Al
4
4
V
V
4
4
I.E
4
4
30-220
Glim.AI
4
4
4
V*
4
4
1
E
lim
modulation wheel. MW:
Music Works. N:anotazio-
ne. N/A: informazione
non disponibile. O: solo
note-on. o: altri. Op: Opco-
de. P: polifonico, pa: posi-
zione attacchi. PB: pitch
bender. PC: cambio prò-
60-200
Al
4
4
4
4
4
4
4
1
4
4
60-200
G, Al
V*
4*
V*
4 *
4'
V*
4 *
I.E
4
4
4
10+
20-250
Al
4
4
4
4
4
4
4
I.E
I.E
I.E
4
1
40-240
Al
4
V*
V*
V*
4 *
V*
V*
I.E
E
I.E
I.E
I.E
I.E
4
4
4
1
50-250
G
4
4
4
4
4
4
4
gramma. PP: Passport.
pp: posizione pezzi. R:
Roland. Sn: Syntech. Sq:
Sequential. st: entrata a
step. SUS: sustain. t: dalla
N/A
G, Al
4
4
4
1
30-275
N,G, Al
4
4
V*
I.E
I.E
4
4
4
10
N
V*
4'
4 *
4
4
traccia. V: volume. 4: fun-
zione esistente. *: modifi-
cabile indipendentemen-
N
4*
N,G
4
4
4
te. @: non coerente. °:
smart. «:canale indirizzabi-
20-400
V*
V*
4 *
V*
V*
I.E
I.E
I.E
I.E
I.E
I.E
4
4
4
lim
le. +: agganciato (nella
colonna Computer indica
Apple II Europlus).
30-300
G, Al
V*
V*
4*
4*
V
V*
V*
I.E
E
E
E
E
E
4
4
4
1
1-500
v
4
y)
V
yj
V
1
1
1
1+
l +
4
4
4
1
30-279
N.G.AI
V*
V*
V*
V*
V*
4*
4 *
I.E
E
E
E+
E+
4
i propri strumenti affiancando loro
un Apple IL questo ha portato alla
creazione di un software specifico,
DG MIDI Music Recorder. Le carat¬
teristiche essenziali di questo pro¬
gramma (che utilizza una apposita
scheda e funità MIDI MPU-401
sempre della Roland) sono le seguen¬
ti: possibilità di registrare oltre 8
tracce polifoniche con cambio veloci¬
tà, tocco, pitch, canali; riproduzione
dei pezzi anche attraverso tastiere e
generatori di ritmi compatibili, con
possibilità di suonare in sovrapposi¬
zione direttamente dal vivo; catene fi¬
no a sedici strumenti, con assegna¬
zione di differenti tracce a ognuno
per varie combinazioni durante la ri-
produzione; correzione automatica di
ogni discrepanza nel timing del pez¬
zo; sincronizzazione dellariproduzio-
ne con qualsiasi registratore a nastro
o altri strumenti; memorizzazione
dei dati su disco per riutilizzi futuri.
Macintosh:
forte, fortissimo
Il 24 febbraio 1984 a San Fran¬
cisco, durante la sua presentazione
ufficiale, Macintosh fece ciò che nes¬
sun computer aveva mai fatto: si pre¬
sentò parlando con la sua stessa
voce, promettendo così future realiz¬
zazioni di altissimo livello creativo.
In due anni le conferme sono state
molte, e i programmi musicali visti
da Applicando sono tra queste.
• Apple Tones e Mozart.
Questi due programmi sono stati rea¬
lizzati da John R. Meier, studente al
Dartmont College di Hannover
(New Hampshire, USA). Apple To¬
nes è un programma musicale, ma
molto atipico: genera solo suoni di
varie tonalità, in crescendo o in ca¬
lando, con delle forme d’onda control¬
late o casuali; è più che altro un otti¬
mo ausilio per capire i fondamenti fi¬
sici del suono. Mozart invece è un
vero e proprio software per generare
musica con tanto di spartito, note ed
esecuzione del pezzo trascritto.
• Concertware. E’ stato uno
dei primi software musicali per Ma¬
cintosh a entrare in commercio. La
versione iniziale è stata migliorata a
passi successivi fino ad arrivare alla
attuale, Concertware Plus for MIDI,
che consente l’interfacciamento con
MIDI e attraverso questo con tastie¬
re, campionatori, ecc. Il programma
comprende tre sezioni separate e di¬
stinte: la prima consente di creare
gli strumenti musicali agendo sulla
forma d’onda del suono generato e di
tutte le sue caratteristiche come attac¬
co, decadimento, vibrato, eco, ecce¬
tera; la seconda è lo spartito vero e
proprio con note, pause, tempi, ecce¬
tera; dulcis in fundo, la parte in gra¬
do di eseguire il pezzo direttamente
o attraverso il MIDI. Contiene già u-
na libreria di pezzi pronti e un'altra
con i necessari strumenti.
• Deluxe Music Constru-
ction Set. Prodotto dalla Electro¬
nic Arts, è in grado di produrre suo¬
ni attraverso i quattro sintetizzatori
del Macintosh e inviarli su quattro
canali attraverso l'interfaccia MIDI
compatibile (non possiede infatti in¬
terfaccia propria). I controlli sono i
principali richiesti per una buona e-
secuzione con 16 strumenti a dispo¬
sizione. Pur non essendo di livello
massimo, ha il grosso vantaggio di
costare poco (circa 50$).
• Jam Séssion. La versione che
che ci è pervenuta non sembra essere
completa e definitiva: è in grado di
riprodurre solo alcuni pezzi già regi¬
strati sul dischetto; questi vengono e-
seguiti con eccezionale fedeltà sono¬
ra, ma poi tutto finisce lì, poiché
non è possibile creare o modificare i
brani. Con impressionante realismo
questo programma riproduce un regi¬
stratore a cassetta a sei canali com-
13
Funzioni di editing
Punch
Merge
1 L
TranQnniA
Time Sig.
Ruhatn l
Prodotto
In
Out
Mute Solo
oop
Quantize
Shift
Tempo
1
1
Edit
buffer
Produttore
Texture
V
V
V
yj
yl
@
s
t.s
yl
V
V
lim
Cherry Line
Mix Master
a
a 0
V
V
yj
yl
<a>.B.D
t.Q.S
t.Q.S
yl
yl
V
yl
CTM
DS3
V
yjo
V
V
yl
<3>.B.D
Q.S
t.Q
V
yl
V
Greengate
Future Shock & Song
a
a°
V
V
yl
yl
@
t.Q.S
t.Q.S
yj
V
yl
LEMI
MetaTrack
V
V°
V
yj
yl
B
t.Q.S
t.g,s
V
yl
Mimetics
Keyboard Controlled
V
V°
V
V
yl
yl
@.D
t.Q.S
t,g.s
V
yl
yl
yl
Dr.T’s
KSQ800
V
yl
yl
yl
B
Q
Q
yl
yl
Korg/Unicord
MIDI Sequencer II
V
V
> 1
V
yl
B
t.Q.S
t.s
yl
yl
Music Data
MIDI 4 Plus
V
V
V
yl
B
9
Q
yj
Passport
Master Tracks
a
a 0
V
V
yj
V
@
t.g.s
t.g
yl
yl
V
yj
Passport
MUSE
a
a
V
V
@
t.Q.S
t,g,s
yl
V
Roland
Studio 1,2
a
a
yj
yj
V
V
B
g.s
t,g,s
yl
yl
V
lim
Syntech
MIDI Composer
V
yl
Assimilation
Studio Mac
V
V°
yj
yj
yl
V
lim
V
V
V
Creative Solutions
Rhythm Sequencer
a
a 0
V
yl
yl
V
@,B,D
t.g.s
yl
V
V
V
CTM
Deluxe Music
V
V 0
yj
g.s
t.g.s
y]
lim
>/
lim
Electronics Arts
Concertware+ for MIDI
V
V
yl
lim
B
t.g.s
yl
V
yl
Great Wave
Musicworks
V
V 0
V
V
lim
t.g
t.g.s
yl
yl
Macromind
Performer
a
a 0
V
V
yl
V
0,@,B
t.g.s
yl
yl
Mark of thè Unicom
MegaTrack
V
V
yl
V
V
@,D
t.g.s
t
yl
yj
N/A yl
Music Works
Midimac Sequencer
a
a 0
V
yj
@,B
t.g
t.g
yl
yl
yl
yl
Opcode
Total Music
a
a 0
V
yj
V
V
@.B.D
t.g.s
t.g.s
yl
yl
yl
lim
Southworth
pleto di VU Meter per indicare il li¬
vello sonoro dei vari strumenti, tasti
di Play, Rewind, Fast Foward, Stop
e Eject, contagiri con memoria e ta¬
sto search per ricercare i brani. E' do¬
tato inoltre di controllo del volume
e del tempo di esecuzione; è anche
possibile ascoltare uno solo per vol¬
ta gli strumenti impegnati nell’esecu¬
zione del brano. E’ un prodotto del¬
la Hayden Software.
• Mac Attach. E’ un software
specifico per l’utilizzo del Mac con
la tastiera Kurzwail 250. In questo
caso il Macintosh fa da supporto al¬
la memoria già presente nella tastie¬
ra permettendo la registrazione su di¬
schetto di qualsiasi tipo di dati gesti¬
bili dal Kurzwail 250, che vengono
organizzati in librerie (di strumenti,
di tastiere, di sequenze). Il marchio
Kurzwail è distribuito da Sincro Sy¬
stem, Milano, e Syncrom, Roma.
• MacMusic. La struttura princi¬
pale di questo programma ricorda
Concertware, in quanto anche qui è a
disposizione il generatore di strumen¬
ti, il sistema di scrittura del brano e
l'esecutore. Dopo un attento esame
ci si accorge che il programma ha u-
na sua particolare filosofia di lavoro:
per esempio gli strumenti possono
essere generati sovrapponendo diver¬
se volte le tre funzioni base, sinusoi¬
de, quadra, triangolare. Così pure il
sistema di scrittura dei brani consen¬
te concatenamenti di pezzi ricorsivi
dando la possibilità di creare pezzi di
eccezionale lunghezza, ma impegnan¬
do pochissima memoria. E' un pro¬
dotto Utopian Software.
• Midi Composer. Questo pro¬
dotto della Assimilation può essere
utilizzato esclusivamente con l’inter¬
faccia MIDI prodotta dalla Assimila¬
tion stessa, che consente la canalizza¬
zione a 16 linee e 4 tracce. Richiede
almeno 128 K liberi di memoria sul
* File LUeueForm Enuelope librato Icon Transfer
Concertware 6
é File Edlt LUIndow Play Notes Groups Meosures Sounds
Delux music
14
computer ed è in grado di memorizza¬
re fino a 10.000 note.
• MidiMac. Più che un softwa¬
re, è una linea di prodotti che vanno
dall’interfaccia MIDI ai programmi.
I programmi principali sono due: un
classico sequenziatore e un Patch E-
ditor. Il sequencer esiste in differenti
versioni (dalla 1.05 alla 3) che varia¬
no per prestazioni, soprattutto nella
possibilità di trasferimento di file da
altri programmi (soprattutto il De¬
lux Construction Set), nella grafica
e nella gestione dei sincronismi. Le
possibilità di questo programma so¬
no piuttosto succulente per il musi¬
cista: 26 sequenze di 16 tracce ciascu¬
na per un totale di oltre 24.000 no¬
te con il limite di esecuzione con¬
temporanea di 32 tracce o di 16 se¬
quenze. Per i possessori di sintetizza¬
tori Yamaha esiste poi il Patch Edi¬
tor che consente un notevole snelli¬
mento delle procedure necessarie alla
programmazione dei timbri di queste
tastiere. Questi prodotti sono della
Opcode e in Italia sono distribuiti da
Sincro System di Milano e
Syncrom di Roma.
• Midi Works. Anche in questo
caso ci troviamo di fronte a una se¬
rie di software integrati prodotti Mu-
sicworks (nulla a che vedere con il
programma omonimo) e importati
da Sincro System di Milano e
Syncrom di Roma. Il programma
principale ha lo stesso nome dell'in¬
tegrato, Midi Works, ed espleta le
sue funzioni nel trasferimento di file
dati tra i programmi più conosciuti:
in entrata si possono avere praticam-
nete file di qualsiasi tipo mentre in
uscita sono selezionabili file Mega-
track (l’altro programma di questo in¬
tegrato), Musicworks, Concertware
o Professional Composer. Il softwa¬
re può essere accompagnato da Mac
MIDI, la vera e propria interfaccia
che in unione all’altro programma
MegaTrack consente la realizzazione
di registrazioni multitraccia là dove
è solo la memoria disponibile che
crea una limitazione al loro numero.
Oltre alle normali caratteristiche que¬
sto programma, che può memorizza¬
re fino a 72.000 note se utilizzato
sul Macintosh da 512K, offre un edi¬
ting delle tracce molto accurato con
possibilità, per esempio, di correzio¬
ne automatica del tempo di una trac¬
cia e di sovrapposizione di più tracce
su di un'unica traccia ricevente.
Sempre di questa serie è disponibile
una DX/TX Librarian che consente
di caricare l’equivalente di 40 cartuc¬
ce di memoria RAM/ROM normal¬
mente utilizzate su queste serie di ta¬
stiere su di un unico dischetto.
• Music Character Set. Più
che un software grafico vero e pro¬
prio, si tratta di una serie di docu¬
menti Mac Paint contenenti i diversi
elementi grafici necessari alla stesu¬
ra di uno spartito che poi è possibile
stampare. Chiaramente nessun colle¬
gamento MIDI, né riproduzione mu¬
sicale dei pezzi. E’ prodotto dalla
South Bay Software.
• MusicWorks. La Hayden So¬
ftware è stata la prima a vedere nel
Macintosh il computer giusto per il
musicista, presentando già nel lonta¬
no luglio ’84 questo prodotto. Data
l’anzianità, è probabilmente il so¬
ftware musicale più venduto per Ma¬
cintosh anche se risulta ormai sur¬
classato da prodotti più recenti. Con¬
sente la stesura di partiture musicali
nota dopo nota su quattro voci e la
loro successiva esecuzione. Gli stru¬
menti selezionabili sono solo 8 (la
forma d’onda di due di questi può es¬
sere disegnata dall'utente). Le altre
caratteristiche del programma sem¬
brano più aiutare nella stesura dello
spartito che nella sua riproduzione,
anche se la limitazione di stesura di
64 battute in 4/4 o corrispondenti
pone limiti anche alla generazione di
spartiti. Inoltre non esiste nel pro¬
gramma la possibilità di generare ter¬
zine, cinquine e tutti i gruppi consi¬
derati irregolari. Con l’uscita di MI¬
DI Works ha avuto un certo rilan¬
cio, essendo possibile con quest’ulti¬
mo programma utilizzare i file creati
da MusicWorks e trasmetterli attra¬
verso interfaccia MIDI.
• Musprint. Per realizzare sparti¬
ti stampati in maniera ineccepibile
Musprint è l’ideale, ma, come nel ca¬
so di Music Character Set, non si
può chiedergli di eseguire il pezzo o
trasferirlo attraverso MIDI. Unico di¬
fetto: non può stampare più di tre
voci. Comunque per settembre do¬
vrebbe esserci una nuova versione
potenziata. Dietro Musprint c’è la
mente di Keith Hamel.
• Professional Composer e
Performer. Reduce dall’Award co¬
me uno dei migliori software per
Macintosh del 1985, Professional
Composer è prodotto dagli esperti
della Mark of thè Unicom. La vinci¬
ta dell’Award conferma in pieno la
qualità e la sofisticatezza di questo
programma, che può fornire al com¬
positore un tale quantità di strumen¬
ti da rendere possibile qualsiasi cosa.
Ben 109 simboli sono utilizzabili
per la stesura del pezzo, e sono pre¬
senti alcune opzioni intelligenti: cor¬
rezione automatica dei ritmi, control¬
lo sul procedere dell’orchestrazione,
gestione anche di gruppi come terzi¬
ne e cinquine o più in generale di
qualsiasi gruppo irregolare. E’ un
programma che il musicista deve as¬
solutamente vedere prima di prendere
qualsiasi decisione sul software da a-
Jam session
é File Edlt Basic* Symbol* Uarlatlons Entra* Grouplngs
Professional Composer 2
15
é File Edit Region Basics Windows
Demo - (P) Carlos E. Campos
<3 <]□>]]
UUINft STOP PLtV MUSI Ritolti i W»IT
Counterj
MCISURE IEAT
ie in odo
Edit
| Start : 1111000
1 End: 1|1|000
1 In: 111 1000
| Out: 111 1000
W/OOO'SS/'/WsOW/'/W'/'/','/'/'/'/
W/'/'s'/'/'s'/'/'/'/'s's's'/'/'/'/'/'s'/'/'/'/O
W/W/W/W/'/'/'/'/'/W/'/'/'/'/'/'/'/'/'/'/
W/W/'/'/'/'/'/'/'/'/'/'/'/'/'/'/'/'/'/'/'/W/
Tracks
<g] ri ff i T
111 Mimmi (<£>
9 * U
[Solo] [T diT\ [ ftdd ) [Deletej
MQUE REC. PLPV TRHCK N*ME
^ Lead
1
^ Background
f
^ Bass
1
\
£> Lead/8ve doublé
1
> RX-11
16 *
1
Performer 2
dottare. Da qualche mese è disponibi¬
le anche Professional Performer che
consente di eseguire le partiture pre¬
parate con il Composer e trasferirle
attaverso MIDI. Unico neo di questi
due eccezionali programmi, importa¬
ti in Italia da Sincro System di Mila¬
no e Syncrom di Roma, il prezzo de¬
cisamente elevato. Ma ne vale vera¬
mente la pena.
• Song Painter. I non addetti ai
lavori possono trovare notevoli sod¬
disfazioni con questo programma.
Ci si può scrivere una canzone, fino
a oltre 180 battute, in 4/4, 3/4 o
2/4. Le possibilità di generazione
del suono sono il minimo gestibile
dal Mac: fino 4 voci con controlli in
esecuzione di volume e tempo. E'
distribuito da Rubicon Publishing.
• Sound Cap. La riproduzione
sonora di questo programma ha qual¬
cosa di veramente sorprendente; con¬
sente di caricare qualsiasi suono da
tastiera e visualizzarlo attraverso un
diagramma temporale. Oltre al nor¬
male editing, Sound Cap consente
anche di invertire il suono, introdur¬
re effetti speciali come eco e riverbe¬
ro, ripetere fino a 99 volte un suo¬
no, modificare la velocità, introdurre
rumore di fondo, sommare più suo¬
ni. E 1 prodotto da Fractal Software.
• Sound Designer. Software
molto specifico disponibile in due
differenti versioni per due tastiere:
lEmulator II della Emù e il Prophet
2000 della Sequential Circuits. L'i¬
dea alla base di questo software è
quella di dare alle tastiere delle possi¬
bilità di elaborazione e di analisi dei
suoni gestibili alla maniera del Ma¬
cintosh, le cui possibilità grafiche
sono tutte sfruttate per semplificare
e velocizzare l'editing. Prodotto da
Digi Designai trova da Sincro Sy¬
stem a Milano e Syncrom a Roma.
• Studio Mac. La Creative Solu¬
tion produce questo simpatico so¬
ftware per coloro che si interessano
di musica a livello hobbistico. Qual¬
che caratteristica: monofonia su otto
tracce, massimo di 2000 note, pos¬
sibilità di uscita su MIDI (4 canali).
• Total Music. E' un sistema
che comprende software per la com¬
posizione, esecuzione ed elaborazio¬
ne di partiture e del relativo MIDI.
Si può scegliere la rappresentazione
degli eventi musicali con la notazio¬
ne standard oppure attraverso un si¬
stema a griglia (utilizzato in manie¬
ra simile da MusicWorks). Le trac¬
ce, non più di 99, sono in grado di
controllare fino 16 canali MIDI o-
gnuna. Le partiture possono anche
essere introdotte direttamente dalla ta¬
stiera e si potranno eseguire tutti i
taglia, incolla eccetera. Il numero di
note gestibili è tra i più alti, oltre
50.000, dovuto anche alla particola¬
re velocità di elaborazione (fino a
800 note al secondo). La sicronizza-
zione può essere quella del Mac o ri¬
chiamata da fuori. Da Sincro
System, Milano, e Syncrom, Roma
• Univers of Sound. Sistema
all’avanguardia destinato ai possesso¬
ri di Emulator II della Emù, contie¬
ne appunto un dischetto per Macinto¬
sh e un Compact Disc: nel dischetto
c'è il software relativo alla gestione
dei collegamenti del Macintosh da u-
na parte con l’Emulator e dall’altra
con lo speciale lettore di dati su
Compact Disc. In pratica il Compa¬
ct Disc contiene una biblioteca di
suoni che possono essere caricati
sull'Emulator II con l’ausilio del Ma¬
cintosh. Ogni suono viene sintetizza¬
to in 512K byte e ogni Compact Di¬
sc può contenere le informazioni di¬
gitali relative a ben 600.000 differen¬
ti suoni. Per ora viene proposto so¬
lo un disco Compact, che comunque
contiene una biblioteca di suoni as¬
solutamente ineguagliata. Prossima¬
mente importato da Sincro System
di Milano e Syncrom di Roma, avrà
logicamente un prezzo elevato.
Mauro Gandini
Ha collaborato Francesca Marzotto
Gli indirizzi utili
In Italia:
• Syncro System - Bosoni, Piazza Tricolore 2, Milano - Tel. 02/793048
• Syncrom, Via F. Massimo 34, Roma - Tel. 06/3581296
• Lemi, Corso Matteotti 37, Torino - Tel. 011/541654
Negli USA:
• Passport, 625 Miramontes, Half Moon Bay, CA94019-Tel. 001/415/7260280
• Unicord, 89 Frost St., Westbury, New York 11590 - Tel. 001/516/3339100
• Wise Music (dealer), 11740 West Florissant, Florissant, MO 63033 - Tel.
001/314/8373030
•Ace Music Center (dealer), 13630 Dixie Hway, N. Miami, FL 33161 - Tel.
001/305/8916201
• Dr. T's Music Software, 24 Lexington Street, Watertown, MA 02172 - Tel.
001/617/9263564
• Electronics Arts, 2755 Campus Drive, San Mateo, CA 94403
• Hayden Software, 650 Suffolk Street, Lowell, Mass. 01854 - Tel. 001/617/9370200
• Utopian Software, P O. Box 40028, Long Beach, CA 90804
• South Bay Software, P.O. BOX 969, Milìbrae, CA 94030
• Rubicon Publishing, 6300 La Calma Drive, Suite 100, Austin, TX 78752
• Creative Solutions, 4701 Randolph Road #12, Rockville, MD 20852 - Tel.
001/301/9840262
Canada:
• Keith Hamel, 466 Albert Street, Kingston, Ontario
16
Aggiungere un tocco di personalizzazione e di vivacità a un programma?
La soluzione, da sempre, è una routine musicale. Che sia buona, però,
e versatile... Eccone una con tanto di staccati, corone, ritardi e pause.
Quella nota
di allegria
Personalizzare un programma e vi¬
vacizzare un gioco sono operazioni
che si fanno, in genere, con il soc¬
corso di qualche buona routine musi¬
cale: ritmi e suoni, inseriti nei pro¬
grammi Applesoft, li rendono infatti
molto più simpatici.
Il problema è, naturalmente, co¬
me inserire la musica nel program¬
ma. Può capitare di passare ore e ore
a giostrare con i POKE e i CALL
senza riuscire ad avere le note deside¬
rate. Se poi la musica comprende
staccati, corone, ritardi e pause si fi¬
nisce per rinunciare. E la routine so¬
nora in linguaggio macchina che si
è presa a prestito risulta inadeguata
allo scopo. Millenote, invece, è un
programma di utilità potente ma faci¬
le da usare, che consente il rapido in¬
serimento di qualsiasi melodia nei
programmi in Applesoft e può suo¬
nare qualsiasi nota in un’estensione
di quattro ottave, con una durata che
va da un fugace clic a sei minuti i-
ninterrotti. E con un altro piccolo
sforzo Millenote permette anche
qualche fantasioso effetto sonoro per
dare vivacità ai giochi.
Per usare concretamente il pro¬
gramma si deve ovviamente saper
leggere la musica, il che non è dav¬
vero troppo difficile. In molti dizio¬
nari e nella maggior parte delle enci¬
clopedie si trovano informazioni a
sufficienza per imparare le note.
Lezione di musica
computerizzata
Dopo aver inserito in memoria il
listato 1, battete BRUN MILLE-
NOTE, e sarete pronti all’azione.
Allegro
G. Puccini
TUNES CODE: &X &RE4TX &B &D &G &F#S ' &G &Fjjf &DS &B &G3
FOOTNOTES: (t) (2) (3) (4) (5)
«fi
SE
ÉpiÉ
&F/TH &G &F#S &EES &G &D &G H &C tt &AE4L &R
(6) (7) (8) (9) (10)
m é > *
&RH &AES &R &RQ &AE &R &HQ &AE &R &RQ
Tempo di valse lento
P
&DH4LT (X-50 ) &DS3 &A4 &D &Ctfll &D33 &F tt &A4 &C tt
( 11 )
m
ritardando
&BH.HEP &BEL ecCtfET (X-60 ) &ET ADETj[X-75) *C 'tt &B
(12) (13) (H)
f-r. J m
einDO^*
a tempo
&DET(X-50) &G3 &GQS &GQLHE &AE4P àBET(X-60) &1;TL £L-C#EPT(X-75 ) &B &A
(15) (16) (17)
Figura 1. Valzer di Musetta (da La Bohème di Puccini).
17
Apple Edrr: Il sis
dal bozzetto
Questa è la bozza del vostro notiziario
aziendale, così come lo fareste, con
tutte le vostre indicazioni, aggiunte,
correzioni di testo, modifiche
all'immagine grafica...
...e questo è il vostro notiziario
aziendale finito e stampato proprio
come lo volete voi. Impaginato,
redatto, illustrato, assemblato da Apple
EdIT in metà tempo e fatto tutto da
mie e il marchio Apple sono marchi registrati della Apple Computer Ine LaserWriter, MacDraw sono marchi della Apple Computer Ine. Macintod) è un marchio Mclntosh Laboratory Ir
è usato su sua licenza. Page Maker è un marchio Aldus Corporation. Microsoft è un marchio Microsoft Corporation. ReadySetGo è un marchio di Manhattan Graphics.
tema più veloce
alla stampa.
Qui a fianco, un notiziario aziendale
in bozza come lo fareste voi.
A sinistra in basso, la stampa finita del
notiziario come la volete voi.
A destra, Apple® EdIT, il sistema
che, finalmente, fa tutto il lavoro
per voi.
Apple EdIT è il più rivoluzionario
sistema integrato per realizzare
qualunque tipo di documento o
stampato, dalla bozza iniziale alla
stampa finale: libri, riviste, relazioni,
cataloghi, listini, manuali, etc.
La cosa di per sè è molto
apprezzabile; ma lo è ancor di più se
tenete conto che con Apple EdIT si
evitano tutti gli sprechi di tempo
tipici dei metodi tradizionali di
stampa. Il che vuol dire meno gente
impegnata nella realizzazione,
ReadySetGo,
realizzato dalla
Manhattan
Graphics.
Microsoft Word,
realizzato dalla
Microsoft.
m
PageMaker,
realizzato dalla
Aldus Corporation,
M.kI*jh £ ■
£■
MacDraw,
realizzato dalla
Apple Computer.
nessuna esecuzione da fare fuori
azienda e, soprattutto, costi ridotti
all’osso.
Quindi un guadagno totale sotto ogni
aspetto.
Il sistema Apple EdIT è formato da
un computer Macintosh’" 512K,
oppure dal nuovo Macintosh'" Plus,
con maggiore potenza e velocità; più
la sofisticata stampante LaserWriter" in
grado di stampare con ben 35
caratteri tipografici diversi e realizzare
qualsiasi composizione su carta,
lucido, buste, etichette.
Il software a disposizione di Apple
EdIT comprende tra l’altro:
PageMaker™, Microsoft™ Word,
ReadySetGo™ e MacDraw™
Ognuno di loro permette tali e
tante soluzioni di grafica, testi,
impaginazione, sillabazione in
italiano, stampa e illustrazione da
soddisfare al meglio qualsiasi
esigenza.
Tutto questo è Apple EdIT. Vi pare
poco?
A noi no, ma se volete sapere
perchè Apple EdIT è il sistema che fa
proprio per voi e tutto per voi, venite a
conoscerlo meglio in un
Apple.Center. Gli indirizzi sono sulle
Pagine Gialle.
Editoria Individuale Testo-grafica.
Ecco la sofisticata stampante LaserWriter: in pochi secondi, esattamente come lo
desiderate, stampa tutto ciò che avete realizzato su Macintosh. Dal computer, alla
stampante, direttamente a voi!
V. Apple Computer
lo applico,
tu applichi?
La pubblicità su
Applicando è informazione.
Chi legge Applicando
possiede un computer
Apple o sta per cambiarlo
con un Apple//e.
O con un Apple //c.
O con un Macintosh.
Oppure non lo cambia
affatto, se lo tiene stretto,
ma vuol sapere dove,
come e cosa fa
veramente per lui.
Una nuova marca
di dischetti?
Una nuova
Software House?
Una nuova stampante
a basso prezzo?
Per chi applica,
è importante saperlo.
Subito.
STUDIOSFERA
sas di Berardo & C
1 * Strada 24 ■ Milano S. Fe
lice - 20090 Segrate MI - te
letono 02/7533939 - 7532151
telex 350132 MACORM-C.F. e
P Iva 0701483015 7-C.C.IAA.
Milano 1132820 - Tribunale
MilanoReg Soc n. 64797
Banca Popolare di
M ilano Ag. 17
Per la pubblicità
studiosfem sas
telefono 02/ 7533939 - 7532151
■
Qualche nota sul valzer di Musetta
1. Imposta i parametri di default.
2. Pausa di un ottavo (croma). Inoltre imposta l'ottava su 4 e il tempo
su X (X è la variabile ai input del tempo nel programma, visibile nel lista¬
to 2, linea 260).
3. li suono è una croma, altezza Si, ottava 4. Basta specificare la nota
perché il default è appunto croma, ottava 4.
4. E un Fa# di terzina di un sedicesimo (semicroma). La terzina è indica¬
ta dall'apostrofo ('). Anche le due note seguenti (Sol e Fa#) sono note
di terzina.
5. Il Sol è nell'ottava 3, e quindi si deve specificare "3". Fine della misu¬
ra uno.
6. Gli abbellimenti, Fa# e Sol, sono impostati sulla durata di una bi¬
scroma.
7. Questo Fa#, scritto come croma, è impostato sulla semicroma per
mantenere il ritmo, dato che gli abbellimenti che lo precedono occupano
tempo.
8. S in questo comando imposta lo Staccato.
9. L reimposta il Legato (note collegate).
10. Una pausa di una croma mette fine alla misura due.
11. Per il "Tempo di valzer lento" l'X-50 imposta un tempo che è di 50 mo¬
vimenti al minuto più lento dell'introduzione.
12. La nota è una minima puntata, altezza Si, con una fermata di una
croma. La P imposta il Portato (note separate da una lieve pausa).
13. Ritardando sta a indicare un graduale rallentamento. L'X-60 rallenta
il tempo rispetto a quello precedente che era di X-50 movimenti al mi¬
nuto.
14. AH'abbellimento viene data la durata di una biscroma.
15. A tempo sta a indicare che il ritardando è finito e si deve riprendere
il tempo originale.
16. Questa nota è un Sol della durata di una semiminima. E' impostato il
legato (in quanto la nota precedente era staccato). HE finale significa
tenere una croma in più (legatura).
17. Lo spartito esemplificativo si ferma qui. Per il resto della musica
bisogna battere tutto il listato 2.
Con un & seguito da <RETURN>
si sentirà un suono breve e chiaro:
l’& richiama il programma Milleno¬
te e suona la nota. Provate ancora a
fare &<RETURN>. La nota che si
sente è il Do centrale, che è nell’otta¬
va 3 dell’estensione di Millenote. Il
suono è inoltre un quarto (semimini¬
ma) al tempo di 160 movimenti (di
un quarto) al minuto. Battete adesso
<RETURN> : sentirete
quattro semiminime di Do centrale,
suonate in legato, cioè senza interru¬
zioni o pause. Scopriamo così che
le condizioni di default per Milleno¬
te sono quelle di altezza Do, ottava
3, quarto (semiminima), legato, 160
movimenti al minuto.
Provate a battere:
&:&D:&E:&F:&G:&A4:&B:&C.
Avrete suonato la scala di Do. Il pri¬
mo suono (di default) era il Do cen¬
trale, il secondo il Re, il terzo il
Mi, e così via (le lettere nel coman¬
do corrispondono alla denominazio¬
ne alfabetica delle note d’uso tedesco
e anglosassone). Le diverse altezze
sono specificate con il parametro di
altezza, nell’estensione A-G (La-
Sol). Tutte queste note vengono suo¬
nate come semiminime in legato, a
160 movimenti al minuto. Dato che
l’alfabeto musicale spazia soltanto
da A a G (ossia da La a Sol) si è do¬
vuto ricominciare da capo con A
(La) dopo G (Sol) sopra C (Do) cen¬
trale. Ma occorreva un La dell'ottava
più alta seguente, perciò si è dovuta
specificare una nuova ottava, in que¬
sto caso 4. Le ultime due note, Si e
Do, hanno assunto il nuovo default
ottava 4. Per suonare nuovamente la
scala si dovrà rispecificare all'inizio
l’ottava 3:
&C3 : &D: &E: &F: &G: &A4: &B :C.
La nota più bassa disponibile in
Millenote è il Re diesis e le note
specificate più basse di questa, per e-
sempio &A1, &B1, &C1 e &D1,
daranno pur sempre un suono, ma si
tratterà di un Re diesis. L'altezza
massima esatta a disposizione è
&F5.
Si possono specificare note più al¬
te (&G5, &A6 e così via) e verrà e-
messo un suono, ma l’altezza non sa¬
rà esatta. Per avere i migliori risulta¬
ti è necessario tenere il parametro
dell'ottava nell'estensione 2-5.
Diesis, bemolle
durata e staccato
Che fare se occorre per la nota un
diesis o un bemolle? E' semplice. I
comandi &C3 : &C# daranno un Do
20
centrale e poi un Do diesis, mentre i
comandi &E : &E! daranno un Mi e
poi un Mi bemolle.
E se occorre una diversa durata del¬
la nota? Anche questo è molto sem¬
plice. Provate a digitare:
&CE3:&D:&E:&F:&G:&A4:&B:
&CH.
Sentirete la scala di Do suonata a
velocità doppia della precedente (con
l’eccezione dell'ultima nota), perché
i suoni sono di un ottavo (croma) an¬
ziché di un quarto. La "E” che si tro¬
va alla prima nota indica appunto la
durata di un ottavo (in inglese ei-
ghth). E la ”H” dell’ultima nota indi¬
ca una metà (in inglese half), o mini¬
ma. Le durate disponibili sono inte¬
ro (semibreve), metà (minima), quar¬
to (semiminima), ottavo (croma), se¬
dicesimo (semicroma) e trentaduesi¬
mo (biscroma), in inglese rispettiva¬
mente whole, half, quarter, eighth,
sixteenth e thirty-second, cioè W,
H, Q, E, S e T.
Il parametro di durata, se specifica¬
to, deve seguire immediatamente il
parametro (o i parametri) di altezza.
L'ottava, se specificata, deve seguire
qualsiasi eventuale parametro di du¬
rata. Millenote permette anche le no¬
te con il punto, o puntate, dove il
punto estende la durata di metà valo¬
re originale: &CH.3 suona un Do
centrale della durata di una minima
puntata (l'equivalente in durata di tre
semiminime), &DQ. suona una se¬
miminima puntata (l'equivalente di
tre crome) e così via.
Infine si possono fare le terzine.
Una terzina di tre semiminime, per e-
sempio, è di durata uguale a due nor¬
mali semiminime. La codifica viene
fatta con un comando del tipo
&CQ':&:&:, dove l'apostrofo signi¬
fica nota di terzina. Per fare crome di
terzina, tre delle quali sono uguali in
durata a due crome normali, ossia a
una semiminima normale, si deve fa¬
re il comando &CE’. Se si vuole u-
na nota di terzina puntata bisogna
mettere il punto prima dell’apostro¬
fo; per esempio &CQ.’ genererà una
semiminima puntata di terzina.
Per vedere in azione lo staccato,
provate a battere:
&CQS:&D:&E:&F:&G:&A4:&B:
&CHL
E' ancora la scala di Do, ma con
un'importante differenza: le note so¬
no in staccato. Questo significa che
la durata del suono è abbreviata e c’è
una pausa fra nota e nota. La cosa
importante da rilevare è che il tempo
(160 movimenti al minuto) rimane
immutato. E’ questa la forza di Mil¬
lenote: non bisogna più fare i calco¬
li per ottenere lo staccato delle note,
è tutto automatico.
Per avere lo staccato delle note ba¬
sta includere una lettera S nella li¬
sta dei parametri dopo l’altezza e la
durata, come è visibile nell'esempio
appena citato; se ci si dimentica di
inserire il parametro di durata e si
mette S per avere lo staccato, il pro¬
gramma penserà che S stia per sedi¬
cesimo e lo tratterà come parametro
di durata.
Per tornare al legato si batte la let¬
tera "L" (dopo i parametri di altezza
e di durata), come si vede nell'ultima
nota delle scale di Do riportate
sopra.
Listato 1. Millenote
DOS 3.3
Apple Ile
9200.9600
Apple Ile
9200-
A9
4C
8D
F5
03
A9
54
8D
9208-
F6
03
A9
92
8D
F7
03
A9
9210-
1B
85
73
A9
92
85
74
20
9218-
1B
92
60
A9
06
8D
F6
95
9220-
A9
4D
85
06
A9
18
85
F9
9228-
A9
26
85
08
A9
03
85
09
9230-
20
34
92
60
A9
00
8D
F2
9238-
95
8D
F3
95
8D
F 4
95
8D
9240-
F5
95
8D
F7
95
8D
F8
95
9248-
8D
F9
95
8D
FA
95
8D
FB
9250-
95
85
FA
60
20
6F
92
20
9258-
69
93
20
4 E
94
AD
F5
95
9260-
F0
06
A9
00
8D
F5
95
60
9268-
20
24
95
20
E8
94
60
20
9270-
B7
00
DO
09
68
68
20
24
9278-
95
4C
E8
94
60
C9
B3
DO
9280-
0A
A9
60
8D
24
95
8D
E8
9288-
94
DO
14
C9
AE
DO
02
F0
9290-
04
C9
A6
DO
10
A9
A5
8D
9298-
24
95
A9
AD
8D
E8
94
20
92A0-
B1
00
68
68
60
20
0A
93
92A8-
20
88
93
20
B1
00
F0
CC
92B0-
B0
08
38
E9
30
85
09
4C
92B8-
AB
92
C9
53
DO
08
A9
01
92C0-
8D
F2
95
4C
AB
92
C9
50
92C8-
DO
08
A9
01
8D
F3
95
4C
92D0-
AB
92
C9
54
DO
0F
20
F5
92D8-
E6
E0
18
B0
02
A2
18
86
92E0-
08
20
A8
94
60
C9
48
DO
92E8-
06
20
39
94
4C
AB
92
C 9
92F0-
4C
DO
14
A9
00
8D
F2
95
92F8-
8D
F3
95
8D
F8
95
8D
F9
9300-
95
8D
FA
95
8D
FB
95
4C
9308-
AB
92
C9
52
DO
06
A9
01
9310-
8D
F4
95
60
C9
58
DO
1B
9318-
20
B1
00
DO
08
20
1B
92
9320-
68
68
68
68
60
A9
01
8D
9328-
F5
95
A5
B8
DO
02
C6
B9
9330-
C6
B8
60
38
E9
40
0A
AA
9338-
A9
00
8D
F 4
95
20
B1
00
9340-
C9
23
DO
11
E8
E0
05
DO
9348-
04
E8
4C
65
93
E0
0B
DO
9350-
14
E8
4C
65
93
C9
21
DO
9358-
04
CA
4C
65
93
A5
B8
DO
9360-
02
C6
B9
C6
B8
8E
F6
95
9368-
60
AD
F 4
95
F0
05
A9
00
9370-
4C
85
93
A6
09
AD
F6
95
9378-
CA
F0
06
18
69
0E
4C
78
9380-
93
AA
BD
9C
95
85
06
60
9388-
20
B1
00
C9
57
DO
07
A9
9390-
60
85
07
4C
D6
93
C9
48
9398-
DO
07
A9
30
85
07
4C
D6
93A0-
93
C9
51
DO
07
A9
18
85
93A8-
07
4C
D6
93
C9
45
DO
07
93B0-
A9
OC
85
07
4C
D6
93
C9
93B8-
53
DO
07
A9
06
85
07
4C
93C0-
D6
93
C9
54
DO
07
A9
03
93C8-
85
07
4C
D6
93
A5
B8
DO
93D0-
02
C6
B9
C6
B8
60
A9
00
93D8-
85
FA
A9
00
8D
F7
95
A5
93E0-
07
85
F9
20
B1
00
C9
2E
93E8-
DO
13
A5
07
8D
FC
95
4A
93F0-
18
6D
FC
95
85
F9
90
02
93F8-
E6
F9
20
B1
00
C9
27
DO
9400-
CC
06
F9
26
FA
A9
00
8D
9408-
FC
95
8D
FD
95
A9
03
8D
9410-
FE
95
A0
10
06
F9
26
FA
9418-
2E
FC
95
2E
FD
95
38
AD
9420-
FC
95
ED
FE
95
AA
AD
FD
9428-
95
E9
00
90
08
8E
FC
95
9430-
8D
FD
95
E6
F9
88
DO
DC
9438-
60
A5
FA
48
A5
F9
48
20
9440-
88
93
18
68
65
F9
85
F9
9448-
68
65
FA
85
FA
60
AD
F7
9450-
95
DO
4F
AD
F2
95
F0
0E
9458-
46
FA
66
F9
A5
F9
8D
F8
9460-
95
A5
FA
8D
F9
95
AD
F3
9468-
95
F0
37
A5
F9
8D
FC
95
9470-
A5
FA
8D
FD
95
4E
FD
95
9478-
6E
FC
95
4E
FD
95
6E
FC
9480-
95
4E
FD
95
6E
FC
95
38
9488-
A5
F9
ED
FC
95
85
F9
A5
9490-
FA
ED
FD
95
85
F,A
AD
FC
9498-
95
8D
FA
95
AD
FD
95
8D
94 AO-
FB
95
A9
01
8D
F7
95
60
94 A8-
A9
00
8D
FC
95
8D
FD
95
94B0-
A9
80
8D
FE
95
A9
17
8D
94B8-
FF
95
A0
10
0E
FE
95
2 E
94C0-
FF
95
2E
FC
95
2E
FD
95
94C8-
38
AD
FC
95
E5
08
AA
AD
94D0-
FD
95
E9
00
90
09
8E
FC
94D8-
95
8D
FD
95
EE
FE
95
88
94E0-
DO
DA
AD
FE
95
85
08
60
94E8-
AD
F2
95
OD
F3
95
DO
01
94F0-
60
A5
FA
48
A5
F9
48
AD
94F8-
F8
95
85
F9
AD
F 9
95
85
9500-
FA
18
A5
F9
6D
FA
95
85
9508-
F9
A5
FA
6D
FB
95
85
FA
9510-
A5
06
48
A9
00
85
06
20
9518-
24
95
68
85
06
68
85
F9
9520-
68
85
FA
60
A5
FA
48
A5
9528-
F9
48
A2
04
06
F9
26
FA
9530-
CA
DO
F9
A5
08
48
A9
00
9538-
85
1A
85
1B
85
1C
85
FB
9540-
A0
08
46
08
90
13
18
A5
9548-
F9
65
1A
85
1A
A5
FA
65
9550-
1B
85
1B
A5
FB
65
1C
85
9558-
1C
06
F9
26
FA
26
FB
88
9560-
DO
E0
68
85
08
68
85
F9
9568-
68
85
FA
A6
06
DO
05
A9
9570-
01
8D
7D
95
CA
F0
05
EA
9578-
EA
4C
81
95
8D
30
CO
A6
9580-
06
A5
1A
DO
OC
A5
1B
DO
9588-
06
A5
1C
F0
09
C6
1C
C6
9590-
1B
C6
1A
4C
74
95
A9
30
9598-
8D
7D
95
60
FF
FF
FF
FF
95A0-
FF
FF
FF
FF
FF
FF
F6
F 6
95A8-
E8
DB
CF
C3
B8
AC
A4
A4
95B0-
9B
92
8A
82
7B
7B
74
6D
95B8-
67
62
5C
57
52
52
4D
49
95C0-
45
41
3E
3E
3A
37
34
31
95C8-
2E
2B
29
29
27
25
23
21
95D0-
1F
1F
1D
1B
1A
18
17
16
95D8-
14
14
13
12
11
10
0F
0F
95E0-
0E
'od
OC
0B
0A
09
08
08
95E8-
07
06
05
04
03
03
02
01
95F0-
00
00
A0
A0
A0
A0
C5
A0
95F8-
BA
A0
A0
A0
A0
A0
AD
A0
9600-
A0
Checksum del listato 1
NOME FILE:
MILLENOTE
TIPO: B
LUNGHEZZA:
0400
CHECKSUM :
A6
21
Portato, fermate,
legature e tempo
A volte possono occorrere note
che non siano staccate, ma abbiano
una breve pausa fra l’una e l'altra; in
questo caso si parla allora di portato
o mezzo staccato. Si può ottenerlo
con il comando Pause (o portato).
Di conseguenza &F#QP:&:&:& da¬
rà quattro semiminime Fa# con una
lieve interruzione fra le note. Con¬
frontando &F#QP:&:&:& con &F#
QL:&:&:&, noterete che il comando
di legato disattiva il portato (oltre a
disattivare lo staccato). Se nella lista
dei parametri sono compresi entram¬
bi i comandi staccato e portato, la
nota sarà ancora più corta, con una
concomitante pausa più lunga (vale
a dire portato e staccato si aggiungo¬
no l'uno all'altro).
Per passare dal puro staccato al pu¬
ro portato bisogna fare qualcosa del
tipo &CQLS :&DQLP:&EQL. La L
nella prima nota elimina qualsiasi
portato o staccato che si trovi lì per
una nota precedente, e poi la S dà lo
staccato àia nota. La L nella secon¬
da nota cancella lo staccato dalla pri¬
ma nota e la P la rende una nota con
portato. Infine la terza nota (e natu¬
ralmente le note successive) verrà
impostata sul legato con la L conclu¬
siva. Anche una fermata (corona) o
una legatura si realizzano facilmente
con Millenote. Per esempio il co¬
mando &GWHW avrà come effetto
due semibrevi legate. La H che se¬
gue il parametro di altezza e il pri¬
mo parametro di durata indica una
fermata o corona (in inglese hold,
trattenere) e la W (iniziale dell’ingle¬
se whole) dopo la H indica una nota
intera o semibreve. Si deve fare at¬
tenzione che il comando H venga do¬
po l’altezza e il primo parametro di
durata; in caso contrario il program¬
ma penserà che H stia per H, cioè
per metà o minima.
Con il comando &GISHH.3 suo¬
nerete un Sol bemolle dell'ottava 3 e
di durata uguale alla somma di un se¬
dicesimo (semicroma) e di una metà
(minima) puntata. Notate che dopo
la specificazione dei parametri di al¬
tezza e durata i parametri di fermata
e il parametro di ottava possono es¬
sere enunciati in qualsiasi ordine.
Si possono anche avere legature
multiple: cronometrate la nota
&CWHWHWHWHWHWHW. Do¬
vreste ottenere una durata appena in¬
feriore a 10,5 secondi, sempre che
Listato 2. Millenote demo 1
DOS 3.3
10 REM -
11 REM MILLENOTE - DEMO 1
12 REM DI S. SCOTT ZIMMERMAN
13 REM COPYRIGHT (C) 1986
Apple Ile
Apple Ile
14 REM BY APPLICANDO 4
15 REM MICROSPARC, INC.
16 REM -
120 IF PEEK (37403) = 169 AND PEEK (38385) = 0 AND PEEK (1014)
= 84 AND PEEK (1015) = 146 THEN 160: REM CONTROLLA SE "MI
LLENOTE" E' PRESENTE IN MEMORIA ED INIZIALIZZATO
140 PRINT CHR$ (4);"BRUN MILLENOTE"
160 TEXT : HOME : VTAB 2: PRINT "(C) 1986 APPLICANDO 4 MICROSPARC
, INC."
180 VTAB 6:A$ = "VALZER DI MUSETTA": HTAB (41 - LEN (A$)) / 2: I
NVERSE : PRINT A3: NORMAL : PRINT :A$ = "DA 'LA BOHEME' DI PU
CCINI": HTAB (41 - LEN (A3)) / 2: PRINT A3
200 PRINT : PRINT :A3 = "PROGRAMMATO DA": HTAB (41 - LEN (A3)) /
2: PRINT A3:A3 = "S. SCOTT ZIMMERMAN": PRINT : HTAB (41 - L
EN (A3)) / 2: PRINT A3
220 PRINT : PRINT :A3 = "CON": HTAB (41 - LEN (A3)) / 2: PRINT A
3:A3 = " M I L L E N O T E ": PRINT : HTAB (41 - LEN (A3)) /
2: INVERSE : PRINT A3: NORMAL
260 X = 150: VTAB 23: CALL - 868: PRINT "CHE TEMPO (IN MOVIMENTI
/MIN)? "; X; : POKE 36, ( PEEK (36) - 3): INPUT "";X3: VTAB 23:
HTAB 1: CALL - 868
280 IF X3 = "" THEN 380
300 X = VAL (X 3)
320 IF X > 255 THEN X = 255
340 IF X < 61 THEN X = 61
360 REM NOTE INTRODUZIONE DEL "VALZER DI MUSETTA":
380 & X: & RE4TX: & B: & D: & G: & F#S': & G: & F#: 4 DE: & B: &
G3: REM FINE DELLA PRIMA BATTUTA
400 4 F#T: & G: & F#S: & EES: & G: & D: & G#: 4 C#: & AE4L: 4 R:
420
4 RH: 4 AES:
FINE DELLA
REM INIZIO
4 R: 4 RQ: 4 AE: 4
QUARTA BATTUTA
SEZIONE TEMPO 3/4
R:
4 RQ:
4 AE: 4 R: 4 RQ
~".v*
440
4 DH4LT(X -
50): 4 DS3: 4 F#: 4
A4:
: 4 D:
4 C#H: 4 DS3: 4
& A4: 4 C#: 4 BH.HEP: 4 BEL: 4 C#ET(X -60): 4 ET: 4 DET(X -
75): 4 C#: & B: & DET (X -50): & G3: 4 GQS: 4 GQLHE
460 & AE4P: & BET(X -60): 4 DTL: 4 C#EPT (X -75): & B: 4 A: REM
FINE DELLA FIGURA 1
470 4 XTLT(X - 50): & A: 4 C#E: 4 F#3: 4 F#QS: 4 FfQLHE
480 & AE3: & B: & D: & F#: & A4: & DH: 4 DS3: 4 F#: 4 A4: 4 D: 4
C#H
500
520
540
560
580
600
620
640
4 DS3: 4 F#: 4 A4: 4 C#: 4 BH.HE: 4 BE: 4 C#: 4 ET: 4 DE: 4 C
#: 4 B: 4 AS'T(X -70): 4 B: 4 AE5T(X - 100): 4 F#E4T(X - 70)
: 4 E: 4 D:: 4 B: 4 F#E3HET (X -50): 4 AE4: 4 AQ: 4 EE3S: 4 F
#: 4 XEL: 4 D: 4 R: 4 D: 4 REHQHH.
REM FINE DEL VALZER DI MUSETTA
VTAB 23: CALL - 868: PRINT "VUOI RIASCOLTARLO? (S/N)"
VTAB 23: HTAB 37: INVERSE : PRINT' " 4 CT5ST255: 4 RW: HTA
B 37: NORMAL : PRINT " ": IF PEEK ( - 16384) < 128 THEN 4 G
T4: 4 RW: IF PEEK ( - 16384) < 128 THEN 560
X = PEEK ( - 16384): POKE - 16368,0
IF X = 211 THEN 260
IF X = 206 THEN END
GOTO 560
Checksum del listato 2
NOME FILE:
MILLENOTE DEMO 1
TIPO: A
LUNGHEZZA:
0 6B9
CHECKSUM :
DO
siate in grado di calcolarla: il tempo
di default è di 160 movimenti/minu¬
to, che è il numero delle semimini¬
me al minuto. Ogni semibreve equi¬
vale a quattro semiminime, e la nota
riportata qui sopra ha sette equivalen¬
ti di semibreve. La nota dovrebbe a -
vere una durata uguale a 4x7=28 se¬
miminime. La durata totale dev'esse¬
re perciò (28 movimenti)/(160 movi¬
menti/min) = (0,175 min) (60
sec/min) = 10,5!
E veniamo al tempo: può darsi
che vogliate accelerare o rallentare u-
na melodia rispetto al default di 160
movimenti/minuto. Notate allora
questo comando: &FQT180. Dopo
la specificazione dei parametri di al¬
tezza e durata viene data una T per il
Tempo, seguita da un numero intero
uguale ai movimenti al minuto desi¬
derati. Di fatto quello del tempo è il
solo comando di Millenote che pos¬
sa gestire un'espressione in Appleso¬
ft, purché l'espressione sia un valore
intero compreso nell'arco 24-255.
Per esempio si potrebbe usare il co¬
mando TP=20:&FQT(200-TP) per
ottenere il tempo di 180 movimen¬
ti/minuto. Ed ecco come ottenere un
ritardando (rallentamento graduale):
TEMPO=160:&CQ3TTEMPO:&D:
&E: &F: &GQT(TEMPO-30): &AQ4
(TEMPO-60):&BQT(TEMPO-90):
22
adverteam
L'H/lzGA
LA VELOCITA' DEL WINCHESTER,
LA VERSATILITÀ DEL FLOPPY
CON LA SICUREZZA
DI DERNOULLI DOX
Bernoulli Box: un sistemo rivoluzionario nelle
memorie di masso.
Bernoulli Box: un sistemo composto da cartuc¬
ce estremamente affidabili do 5-10-20 milio¬
ni di caratteri ciascuno che in dimensioni com¬
patte offrono tempi di accesso molto bossi
(35 ms medio) e uno resistenza agli shock
sinora impensabile.
■L'estroibilitò e l'intercambiabilità delle cartuc¬
ce aumentano a dismisura le capacità di me¬
moria di mossa e rendono possibile lo scam¬
bio di dati tra vari personals (IBM, OLIVETTI,
APPLE, PHILIPS, SPERRY, ecc.).
MODELLO
CAPACITÀ IN
MDYTES
TEMPO ACCESSO
MEDIO IN MSEC
FATTORE
FORMA
B105E
5
05
5,25" -
FULL-SIZE
MONTAGGIO
INTERNO
A110HE
10
35
SOTTOSISTEMA
A 1 DI5CO
A210HED
2x10
35
SOTTOSISTEMA
A 2 DISCHI
A120HE
1x20
35
SOTTOSISTEMA
A 1 DISCO
AE20HE
2x20
35
SOTTOSISTEMA
A 2 DISCHI
Senza alcun impegno desidero ricevere:
□ Documentazione tecnico relativo a:
□ Visito di un Vs. Funzionario
Nome e Cognome
Società/Ente
Via
Città
CAP
Telefono
AR
Telcom srl - 20146 Milano
Via M. Civitoli, 75
Tel. 02/4047646-4049046
Telex 335654 TELCOM I
Telefax 02/437964
i 1 s
&CW. Dato che valuta un’espressio¬
ne, il comando di tempo deve venire
per ultimo nella lista dei parametri
(seguendo almeno i parametri di al¬
tezza e durata).
Millenote, infine, permette di spe¬
cificare le pause con la durata oppor¬
tuna. Il comando &R (dove R sta
per rest, in inglese pausa) genererà
un intervallo senza suono di durata
uguale all’ultima nota suonata.
Si può esplicitamente specificare
la durata di una pausa di una semimi¬
nima, per esempio, con il comando
&RQ, e una legatura di una pausa di
una semibreve con una minima pun¬
tata mediante il comando &RWHH.
Comandi ausiliari
e sommario principale
Abbiamo visto così tutti i coman¬
di principali. Restano da vedere quat¬
tro comandi ausiliari, peraltro molto
utili. Il primo, &X, reimposta auto¬
maticamente tutti i default originali
(Do centrale, semiminima, legato,
160 movimenti/min) senza suonare
di fatto una nota. Il secondo coman¬
do, &X[parametri], è esattamente co¬
me ogni altro, con la differenza che
al posto di un parametro d'altezza c’è
una X. Questo permette di imposta¬
re i parametri senza suonare una no¬
ta. Per esempio &XQT120:&C:&D
farà in modo che C (Do) e D (Re)
suonino come semiminime al tem¬
po di 120 movimenti al minuto.
Gli ultimi due comandi ausiliari
sono &STOP e &RESTORE (o in
alternativa &RESUME), vale a dire
rispettivamente Fermare, Ripristina¬
re e Riprendere.
Nei programmi musicali è utile a-
vere una possibilità di scelta fra suo¬
no e silenzio, e questo si ottiene in¬
serendo nei programmi in Applesoft
le seguenti istruzioni:
100 PRINT "VUOI IL SUONO?
(S/N)”;: GET A$
120 IF A$ = ”N" THEN &STOP:
REM DISATTIVA IL SUONO
SUSSEGUENTE
140 IF A$ = ”S" THEN &RESTO
RE: REM RIPRISTINA IL
SUONO
Con l'opportuna codificazione nel
programma si può consentire all'u¬
tente di disattivare (&STOP) e di
riattivare (&RESTORE o &RESU-
ME) il suono generato da Mille¬
note.
Ecco infine un sommario di tutti i
comandi disponibili con il program¬
ma Millenote:
1. Il comando generale, compren¬
sivo delle opzioni dei parametri, è
& {[altezza: A-G[#] [!]][R)est]} {dura¬
ta: W,H,Q,E,S ,T[.] [’]} [ottava: 1 -6] {L)
egato] [Smaccato] [P)ortato] [H)old
Listato 3. Millenote demo 2
MILLENOTE - DEMO 2
DI S. SCOTT ZIMMERMAN
COPYRIGHT (C) 1986
BY APPLICANDO &
MICROSPARC, INC.
PEEK (37403) =169 AND PEEK (38385) = 0 AND PEEK (1014)
= 84 AND PEEK (1015) = 146 THEN 160: REM CONTROLLA SE "MI
LLENOTE" E' IN MEMORIA
140 PRINT CHRS (4 );"BRUN MILLENOTE"
160 TEXT : HOME : VTAB 2: PRINT "(C) 1986 BY APPLICANDO & MICROSP
ARC/INC. "
180 VTAB 6 :AS = " INVENZIONE N. 8 " : HTAB (41 - LEN (A$)) / 2: I
NVERSE : PRINT A$: NORMAL : PRINT :A$ = "DI JOHANN SEBASTIAN
BACH": HTAB (41 - LEN (A$)) / 2: PRINT A$
200 PRINT : PRINT :A$ = "PROGRAMMATO DA": HTAB (41 - LEN (A$)) /
2: PRINT A$:A$ = "S. SCOTT ZIMMERMAN": PRINT : HTAB (41 - L
EN (A$)) / 2: PRINT A$
220 PRINT : PRINT :A$ = "CON": HTAB (41 - LEN (A$)) / 2: PRINT A
$ :A$ = "MILLENOTE": PRINT : HTAB (41 - LEN (A$)) /
2: INVERSE : PRINT A$: NORMAL
260 X = 126: VTAB 23: CALL - 868: PRINT "CHE TEMPO (IN MOVIMENTI
/MIN)? " ; X; : POKE 36, ( PEEK (36) - 3): INPUT "";X$: VTAB 23:
HTAB 1: CALL - 868
280 IF X$ = "" THEN 380
300 X = VAL (X$)
320 IF X > 255 THEN X = 255
340 IF X < 61 THEN X = 61 ^
360 REM NOTE DI " INVENZIONE N.8 DI BACH":
380 & RETX : & FE3S : & A4 : & F3': & C< : & -F3': & FÉ4L: & ES : & D : &
C: & D: & C: & B! : & A: & B! : & A: & G3: REM BATTUTE 1-2
400 & FES: & A4: & C: & A: & F: & C: & AS5L: & C: & B!: & C: & A:
& C: & B!: & C: & A: & C: & B! : & C: REM BATTUTE 3-4
420 & F4: & A5: & G4: & A5: & F4: & A5 : & G4: & A5: & F4: & A5: &
G4 : & A5: & D4: & F: & E: & F: & D: & F: & E: & F: & D: & F:
& E: & F: REM BATTUTE 5-6
440 & BES: & G3: & D4: & B: & F: & D: & GSL: & A5: & G4: & F: & E
: & F: & E: & D: & C: & D: & C: & B!: REM BATTUTE 7-8
460 & AES: & DSL: & C: & B: & C: & B: & A: & G3: & A4: & G3: & F:
& E: & F: & E: & D: & CEL: &CS4: & B: & CES: & EE3L: REM B
ATTUTE 9-10
10 REM
11 REM
12 REM
13 REM
14 REM
15 REM
16 REM
120 IF
DOS 3.3
Apple Ile
Apple Ile
-f 480 & FES: & C4: & É3: & C4: & D3: & B4: & CQL: & RQ: & : & RE: &
CES: & E: & C: & G: & C: REM BATTUTE 11-13
*■500 & CE5L : & BS: & A: & G4: & A5: & G4: & F: & E: & F : & E: & D:
& C: & B!: & C: & A5: & C4: & A5: & B! 4 : & A5: & C4: & A5: &
A4: & A5: REM BATTUTE 14-15
520 & B!E4S: & G3: & B!4: & G3: & D4: & G3: & GEL4: & FS: & E!: &
D: & E!: & D: & C: & B!: & C: & B!: & A: & GES3: & B! 4 : & D:
& B!: & G: & D: REM BATTUTE 16-18
540 & B ! E5S :, & C#4: & B ! 5 : & C#4: & B!5: & C#4: & D: & A: & F: &
D: & A5: & F4: REM BATTUTE 19-20
560 & GSL: & F: & G: & B ! 5 : & C4: & B! 5 : & D4: & B! 5 : & E4: & B! 5
: & C4: & B! 5 : & F4: & E: & F: & A5: & B4: & A5: & C#4: & A5:
& D4: & A5: & B4: & A5: REM BATTUTE 21-22
580 & E4: & D: & E: & G: & A: & G: & B: & G: & C#: & G: & A: & G:
& FEL: & D: & B!ES: & D: & G3: & F4: REM BATTUTE 23-24
600 & EEL: & C: & AES: & C: & F3: & E ! 4 : & DSL: & F: & E!: & F: &
D: & F : & E ! : & F : & D : & F : & E ! : & F : & B ! : & D : & C : & D :
& B!: & D: & C: & D: & B!: & D: & C: & D: REM BATTUTE 25-27
620
& G3 :
: & B ! 4 :
& A: & B!:
: & G3 : & B! 4:
& A:
& B!: & G3: & B! 4 :
& A:
8-29
& B! : &
EE3S: & C:
: & G: & E: &
B! 4 : &
G3: REM BATTUTE
2
640
& CS4L: & D:
& C: & B!:
: & A: & B!: &
A: &
G3 : & F : & G : & F :
& E! :
: & DES:
& GSL: & F: & E: & F: &
E: &
D: & C: & D: & C:
&
B! :
REM BATTUTE 30-31
660
& A:
& B! : &
A: & G2: t
; FE: & FS3: &
E: &
FES: & A: & B!: &
F
ET (X
- 10) :
& AET (X - 20): & FET (X -
30) :
& G2ET (X - 45) : &
E
3: & FQL: & RQHQ: REM BATTUTE 32-33
680 REM FINE DELL'INVENZIONE N.8 DI BACH
700 VTAB 23: CALL - 868: PRINT "VUOI RIASCOLTARLA? (S/N)"
720 VTAB 23: HTAB 37: INVERSE : PRINT " "; : & CT5ST255 : & RW: HTA
B 37: NORMAL : PRINT " ": IF PEEK ( - 16384) < 128 THEN & G
T4: & RW: IF PEEK ( - 16384) < 128 THEN 720
740 X = PEEK ( - 16384): POKE - 16368,0
760 IF X = 211 THEN 260
780 IF X = 206 THEN END
800 GOTO 720
Checksum del listato 3
NOME FILE:
MILLENOTE DEMO 2
TIPO: A
LUNGHEZZA:
08BB
CHECKSUM :
1E
24
Sette minuti
, e la chiave
del Mac Basic
Club è tua
Sette minuti possono aprirti la porta
di un nuovo mondo: quello dei
programmi scritti da te come ^
servono a te, sulla misura
delle tue esigenze. Sette minuti
bastano per decidere di entrare
nel Club di chi sa ottenere dal
suo Macintosh esattamente
quello che vuole. Il Mac Basic Club
ti offre proprio questo: tutorial in
italiano, routines, trucchi e segreti,
suggerimenti, idee. In pratica il Club
offre tutto il supporto che ti è
necessario per imparare senza
s fatica il Basic Microsoft. E te lo
offre gratis se non possiedi ancora il
Microsoft Basic 2.1. Iscrivendoti al
Mac Basic Club riceverai infatti,
_ subito e direttamente
al tuo indirizzo
il Microsoft
Basic 2.1 in
confezione
originale
completa di
manuale,
più il primo
numero del
bimestrale su dischetto del
Mac Basic Club. Gli altri cinque dischetti
ti verranno spediti via via che verranno
pubblicati. Ma tu pagherai solo il prezzo
del Microsoft Basic 2.1, e cioè 327.000
lire (più Iva 9%). Ma anche se possiedi già
il Basic puoi iscriverti al Mac Basic Club
in questo caso riceverai solo i sei numeri
del bimestrale su dischetto del Club, e
pagherai 160.000 lire (più Iva 9%).
Mac Basic Club è un'iniziativa
nQ
-q -
basic
Club.
Il Microsoft Basic permette di
programmare in un ambiente
altamente interattivo,
sfruttando tutte le potenzialità
_ di Macintosh: la grafica,
■ il suono, le finestre, i menù.
Comprende strutture
di controllo avanzate come le
istruzioni PRINT USING,
IF/THEN/ELSE, WHILE/WEND, ecc.
In più, rispetto al Microsoft Basic 2.0,
il Microsoft Basic 2.1 è in pratica
due volte più veloce.
Ed è sicuramente il
linguaggio che più
rapidamente e più
facilmente ti farà
ottenere risultati
davvero
professionali.
MICROSOFT
ìCaÌcrosoft»
Saar
riuh Iscriviti subito.
e « tuo club.
Basta com^VorsS M°" ,orte * ’ - - -
EdUronica Srl, - - - ic 2 .i.
_ — ^ ^ ^ . KAirroSoU
ppistfìi
MICROSOFT.
I
1
I
1
I
I
I
I
I
I
I
I
Ure compr enslv .•abbonamento
indirizzo. Desidero *°i° strale dei Mac
° 5 as« iva è
q Desidero iattura, i .
I
1
I
I
I
1
I
1
I
I
1
I
nome
MAfTlfi
UHtHBM
[durata]} {T)empo [aexpr 24-255]}
dove ogni parametro di tipo non spe¬
cificato va per default a quello speci¬
ficato più di recente (o, se non è sta¬
to mai specificato, al default origina¬
le, vale a dire Do centrale, semimini¬
ma, legato, 160 movimenti/minu¬
to).
I vari parametri sono definiti come
segue:
a. Le lettere A-G rappresentano le
otto altezze primarie della scala mu¬
sicale. Se è specificato un qualsiasi
parametro di nota l'altezza deve esse¬
re il primo parametro dopo l'&.
b. Immediatamente dopo la lettera
dell'altezza un # significa diesis e un
! significa bemolle. Si può specifica¬
re soltanto uno di questi in un singo¬
lo comando &.
c. R significa pausa (in inglese re-
st). Deve essere il primo parametro
nel comando &.
d. Dopo il parametro (o i parame¬
tri) di altezza o di pausa, W = intero
(semibreve), H = metà (minima), Q
= quarto (semiminima), E = ottavo
(croma), S = sedicesimo (semicro¬
ma), e T = trentaduesimo (biscroma)
stanno per la durata della nota (le ini¬
ziali sono, come si è visto sopra,
quelle delle parole inglesi whole,
half, quarter, eighth, sixteenth e thir-
tysecond). Il parametro di durata, se
è specificato, deve seguire immedia¬
tamente il parametro d'altezza.
e. Un punto (.) che segue subito il
parametro di durata modifica la dura¬
ta, dando una nota puntata.
f. Un apostrofo (*) che segue imme¬
diatamente il parametro di durata mo¬
difica la durata dando una nota di ter¬
zina. L'apostrofo deve seguire il pun¬
to se sono specificati entrambi.
g. Un numero intero nell'arco 1-6
indica l'ottava. Ogni ottava abbrac¬
cia le note che cominciano con La
bemolle e terminano con Sol diesis.
Per avere le altezze esatte usate sol¬
tanto la fascia di ottave 2-5. Il para¬
metro di ottava può essere dato in
qualsiasi punto dopo i parametri di
altezza e di durata, a meno che non
sia specificato nessun parametro di
durata, nel qual caso il numero del¬
l'ottava viene enunciato immediata¬
mente dopo il parametro di altezza.
I seguenti comandi, se specificati, de¬
vono venire dopo il parametro (o i
parametri) di altezza e il parametro
(o i parametri) di durata,, ma non in
un ordine particolare, salvo che il pa¬
rametro di Tempo deve venire per ul¬
timo.
h. Una L imposta il modo durata
sul legato (nessuna interruzione fra
le note). S imposta iLmodo sullo
staccato (la durata del suono è dimez¬
zata, e dopo la nota si ha una pausa
di silenzio uguale alla nuova durata).
P imposta il modo sul portato (la
durata è lievemente diminuita con u-
na breve pausa dopo la nota). I para¬
metri S e P si sommano, vale a dire
se entrambi sono specificati in un'u¬
nica nota la durata del suono sarà ac¬
corciata da entrambi i comandi, e la
pausa dopo la nota sarà allungata da
entrambi.
i. Una H indica una nota tenuta (os¬
sia una fermata). Immediatamente do¬
po la H deve essere dato un parame¬
tro di durata (W, H, Q, E, S o T,
con facoltà di punto e/o apostrofo).
In un’unica nota si può dare un mas¬
simo di 116 set di fermate, per quan¬
to nella pratica sia raro che se ne co¬
difichino più di tre.
j. Come ultimo parametro specifica¬
to T imposta il tempo sul numero
di movimenti al minuto, uguale al¬
l’espressione Applesoft che segue la
T. L’espressione deve dare un valore
intero nell'arco compreso fra 24 (il
tempo più lento) e 255 (il tempo
più veloce).
2. Con Millenote sono disponibi¬
li anche i comandi ausiliari illustra¬
ti qui sotto. Sono chiamati ausiliari
Listato 4. Millenote effetti sonori
DOS 3.3
10 REM — — — —
11 REM MILLENOTE - EFFETTI SONORI
12 REM DI S. SCOTT ZIMMERMAN
13 REM COPYRIGHT (C) 1986
Apple Ile
Apple Ile
14 REM BY APPLICANDO &
15 REM MICROSPARC, INC.
16 REM -
120 TEXT : HOME : VTAB 2: PRINT "(C) 1986 BY APPLICANDO & MICROSP
ARC,INC.": VTAB 6:A$ - "MILLENOTE - EFFETTI SONORI": HTAB (41
- LEN (A$>) / 2: INVERSE : PRINT A$: NORMAL
140 PRINT :A$ = "DI S. SCOTT ZIMMERMAN": HTAB (41 - LEN (A$)) /
2: PRINT A$
160 PRINT CHR$ (4);"BRUN MILLENOTE"
180 VTAB 17: INVERSE : PRINT "EFFETTI SONORI:": NORMAL
200 GOSUB 2000: PRINT "FISCHIO (?)": & X: POKE 8,1: FOR I « 240 T
O 250: POKE 6,252 - I: & : NEXT : & X: & RH: & X: POKE 8,1: F
OR I = 2 TO 50: POKE 6,1: & : NEXT : GOSUB 1000: IF A$ = "S"
THEN 200
220 GOSUB 2000: PRINT "INCONTRO CON IL MOSTRO (?)": & X: FOR I =
1 TO 10: & CT.3: & C#: NEXT : GOSUB 1000: IF A$ = "S" THEN 22
0
240 GOSUB 2000: PRINT "MOVIMENTO ASTRONAVE (?)" : & X: POKE 8,5: F
OR' L = 1 TO 30: POKE 6,( RND (1) *20+10): & : NEXT : GOSUB
1000: IF A$ = "S" THEN 240
260 GOSUB 2000: PRINT "TIC-TAC": & X: FOR I = 1 TO 3: & CT5PST255
: & RW: & GT4: & RW: NEXT : GOSUB 1000: IF A$ = "S" THEN 260
280 GOSUB 2000: PRINT "SIMULATORE DI CTRL-G (BIP)": & X: FOR I =
1 TO 3: & A#E5: & RQ: NEXT : GOSUB 1000: IF A$ = "S" THEN 280
300 GOSUB 2000: PRINT "SERPENTE (?)": & X: FOR I = 1 TO 50: POKE
8,1: POKE 6,3: & : NEXT : GOSUB 1000: IF A$ = "S" THEN 300
320 GOSUB 2000: PRINT "UCCELLINO": & X: FOR I = 1 TO 3: POKE 8,1:
FOR J = 2 TO 6: POKE 6,J: & : NEXT J: & X: & RQ: NEXT I: GOS
UB 1000: IF A$ = "S" THEN 320
340 GOSUB 2000: PRINT "FISCHIO ARBITRO (?)": & X: POKE 8,1: FOR I
= 1 TO 50: & A6: & A#6: NEXT : GOSUB 1000: IF A$ = "S" THEN
340
360 GOSUB 2000: PRINT "FISCHIO ARBITRO PIU 1 FORTE (?)": & X: POKE
8,1: FOR 1=1 TO 50: & C6: & C#6: NEXT : GOSUB 1000: IF A$
= "S" THEN 360
380 GOSUB 2000: PRINT "SIRENA D’AMBULANZA": & X: FOR I = 1 TO 4 :
& CQ3: & G2: NEXT : GOSUB 1000: IF A$ = "S" THEN 380
400 GOSUB 2000: PRINT "'FANFARA 'CARICA'": & GE3PT230: & CE4: & E
: & GQL: & EE: & GH: GOSUB 1000: IF A$ = "S" THEN 400
420 GOSUB 2000: PRINT "SQUILLO TELEFONO": & X: POKE 8,6: POKE 6,2
7: FOR I = 1 TO 30: & : NEXT : GOSUB 1000: IF A$ = "S" THEN 4
20
440 GOSUB 2000: PRINT "ELETTRICITÀ' STATICA (CONTATORE GEIGER)":
& XS2ST255: FOR I = 1 TO 80: POKE 8, RND (1) * 10: & A: NEXT
: GOSUB 1000: IF A$ = "S" THEN 440
460 HOME : END
1000 VTAB 20: HTAB 1: CALI, - 868: PRINT "VUOI RIASCOLTARLO? (S/N
) ";: GET A$: PRINT A$: RETURN
2000 VTAB 20: HTAB 1: CALL - 868: RETURN
Checksum del listato 4
NOME FILE:
MILLENOTE EFFETTI SONORI
TIPO: A
LUNGHEZZA:
0585
CHECKSUM :
3E
26
Abbiamo già venduto 2 milioni di
High Precision Data Memories.
E siamo solo agii inizi.
High Precision che, trattandosi di un di¬
schetto flessibile, dice tutto.
Precisione per HP Data Memories è il
risultato di una tecnologia avanzatissi¬
ma che si avvale delle ultime novità in
fatto di materie prime, formulazione
magnetica, costruzione e sistemi di
confezione.
Non c'è da stupirsi, se pensiamo che
questo marchio di successo ha dietro di
sè tutta l’esperienza commerciale e tec¬
nologica di un’azienda come la MEE.
HP Data Memories unisce eccezionali
caratteristiche di chiarezza del segna¬
le, alta resistenza del substrato in po¬
liestere, lunga durata.
I numerosissimi test cui viene sottopo¬
sto durante il ciclo di fabbricazione ne
garantiscono prestazioni molto superio¬
ri a quelle dettate dai normali standards
quantitativi.
Preciso, resistente, affidabile anche
nelle situazioni più critiche, il dischet¬
to HP Data Memories -
prodotto nei formati 8”,
5 1/4”, 3 1/2”-ècerti¬
ficato 100% error free
secondo le norme ANSI, ECMA, ISO,
JIS, IBM, SHUGART.
Del resto che sia un prodotto di primis¬
sima qualità è dimostrato dalla sua in¬
credibile diffusione, ben 2.000.000 di
pezzi venduti in pochissimo tempo.
Un "dischetto d’oro” in piena regola
che ha tutte le intenzioni di continuare
su questa strada fino ad un prossimo
ancora più ambizioso traguardo.
s.p.a. ■20144 MHano-Via Boni, 29.
t.02/498854Uetex324426MEE-ltalia
MEE
Parliamone insieme.
perché non codificano un suono.
a. Il comando &X reimposta tut¬
ti i parametri sui valori di default ori¬
ginali, vale a dire Do centrale, semi¬
minima, legato, 160 movimenti/mi¬
nuto, senza emettere un suono.
b. Il comando &X[parametri],
nel quale i parametri possono essere
di qualsiasi tipo indicato sopra con
l’eccezione dei parametri di altezza,
imposta i parametri specificati ma
non emette alcun suono.
c. &STOP silenzia tutti i comandi
& susseguenti. Il programma si
comporta praticamente come se i co¬
mandi & di Millenote non esistes¬
sero.
d. &RESUME o &RESTORE
causa la ripresa del suono dei coman¬
di &.
3. Per ottenere altezze e durate
non accessibili dai parametri norma¬
li si possono fare inoltre i seguenti
POKE:
a. POKE 6,n ove n è un’altezza
nell’arco 1-255. Maggiore è il valore
di n minore è l'altezza. Così l'altezza
più piccola disponibile è data da PO¬
KE 6,255:&. State però attenti a
non includere alcun parametro con il
comando &, altrimenti il POKE
risulterà annullato dall’altezza speci-
b. POKE 249,i : POKE 250J
dove la durata è uguale a i + j *
256, nell’arco 1-65535. Più alto è il
valore di i e j maggiore è la durata.
Il valore di i, che è il byte di ordine
basso di un valore di due byte,
dev'essere un numero dell’arco 1-
255, e j, il byte di ordine alto,
dev'essere nell'arco 0-255.
c. POKE 8,m dove m è il tempo
nell’arco 1-255. Più alto è il valore
di m più lento è il tempo. Così PO¬
KE 8,1 :& è il tempo più veloce pos¬
sibile. In effetti per molte altezze è
talmente veloce che non sarà emesso
alcun suono.
Tanto per dare un’idea dell’arco del¬
le durate che è possibile ottenere con
il POKE del tempo e della durata, di¬
ciamo che se si fa POKE 8,1 (il tem¬
po più veloce) e POKE 249,1 : PO¬
KE 259,0 (la durata più breve) il
suono (seppur ci sarà) non sarà che
un debole clic. All’altro estremo se
si fa POKE 8,255 (il tempo più len¬
to) e POKE 249,255 : POKE
250,255 (la durata massima) e poi si
suona la nota (& senza alcun parame¬
tro) il suono durerà 6 minuti e 50 se¬
condi.
4. Per amplificare il suono della
musica o degli effetti sonori creati
con Millenote si può convogliare il
suono dalla porta d’uscita cassette
(sul retro dell’Apple Ile) all'amplifi¬
catore dell'impianto stereo o aH’in-
gresso audio del monitor (se il moni¬
tor è munito di altoparlante). Sarà
necessario modificare il programma
per accedere alla locazione di memo¬
ria cassette out (-16352 = $C020) an¬
ziché alla locazione dell’altoparlante
(-16336 = $C030). Per far questo oc¬
corrono due POKE: POKE 38269,
32 e POKE 38295,32.
Se siete in possesso dell’Apple
Ile, non occorre alcuna modifica al
programma e potrete collegare l’in¬
gresso del vostro impianto sereo alla
presa per l'auricolare sistemata vici¬
no al regolatore del volume.
I programmi
dimostrativi
Nel listato 2 è visibile un pro¬
gramma in Applesoft che dimostra
la potenza e la flessibilità di Mille¬
note. L’esempio musicale è il valzer
di Musetta da La Bohème di Pucci¬
ni. Lo spartito del pezzo è visibile
nella figura 1. Il brano è stato scel¬
to perché ha una grande varietà di no¬
te: legato, staccato, portato, abbelli¬
menti, note tenute, ritardando, terzi¬
ne, pause e via dicendo.
Si può apprendere parecchio sul
modo in cui introdurre la musica di
Millenote nei programmi in Apple¬
soft confrontando lo spartito con il
listato del programma.
Il listato 3 presenta un program¬
ma in Applesoft dell’Inventio Vili di
Bach, che mostra con quale facilità
la musica veloce (in questo caso vi¬
vace) sia trattata.
Il listato 4 è una dimostrazione
di vari effetti sonori possibili con
Millenote, che, a dire il vero, non è
stato scritto come programma di ef¬
fetti sonori... Ma con un po’ di im¬
maginazione e di fortuna si può rea¬
lizzare qualche altro effetto interes¬
sante da usare nei giochi.
Carica e
funzionamento
Millenote è un programma in As¬
sembler (visibile nel listato 1).
Dopo aver introdotto tutto il codice
macchina seguendo le istruzioni ri¬
portate nella rubrica Per chi comin¬
cia, battete BSAVE MILLENOTE,
A$9200, L$ 400 per salvare su di¬
schetto il programma binario.
Quando fate BRUN MILLENOTE
accadono tre cose:
1. Il vettore & a $3F5 (decimale
1013) è impostato in modo che l’Ap¬
plesoft salti alla routine principale
(MAIN) quando si incontra un &.
2. HIMEM è impostata sotto la
routine Millenote per proteggerla dal¬
le variabili stringa dell’Applesoft,
che normalmente occupano quella re¬
gione della memoria.
3. Vengono impostati i valori di
default e i vari flag sono azzerati.
La funzione più importante della
routine principale MAIN è quella di
richiamare le varie subroutine per
predisporre i valori della nota (altez¬
za, durata e così via) e di richiamare
poi la routine del suono stessa.
La prima e principale subroutine
chiamata da MAIN è PARMSORT,
che ordina i parametri di input. Par-
msort e le subroutine che essa chia¬
ma usano due importanti routine del¬
la ROM Applesoft, CHRGET e
CHRGOT.
Entrambe queste routine usano il
vettore Applesoft TXTPTR, in loca¬
zione a $B8 e $B9 (decimali 184 e
185). TXTPTR punta il carattere o i-
struzione seguente del programma in
Applesoft. Così quando si incontra
un & e il programma salta a Mille¬
note si ha che TXTPTR sta puntan¬
do il carattere che segue l’&.
La routine CHRGET, in locazione
a $00B1 (decimale 177), fa tre cose:
1. Incrementa TXTPTR.
2. Carica nell'accumulatore il carat¬
tere al quale TXTPTR sta puntando.
3. Imposta il flag Zero del registro
di stato del processore se TXTPTR
sta puntando la fine di una linea, e
pulisce il flag di Carry se l’accumula¬
tore conserva un numero ASCII (0-
9).
La routine CHRGOT, in locazio¬
ne a $00B7 (decimale 183), svolge
la stessa funzione di CHRGET ma
non incrementa TXTPTR; in altre
parole CHRGOT carica nell'accumu¬
latore il carattere che TXTPTR sta
già puntando.
Le subroutine di Millenote utiliz¬
zano CHRGET e CHRGOT per rice¬
vere ciascun parametro, un parame¬
tro alla volta, e poi modificano op¬
portunamente le variabili (altezza,
durata, ottava e via dicendo) o impo¬
stano i vari flag (di staccato, di pau¬
sa e così via).
Un'altra routine della ROM Apple-
28
soft utilizzata è GETBYTC, in loca¬
zione a $E6F5 (decimale 59125).
Sua funzione generale è quella di va¬
lutare l’espressione Applesoft punta¬
ta da TXTPTR. GETBYTC è usata
in PARMSORT dopo che si è incon¬
trata una T, per valutare l’espressio¬
ne che sta per il tempo.
Il cuore di Millenote è la subrouti¬
ne Note, che suona la nota codificata
nella lista del parametro &. Note
dapprima moltiplica la variabile di
durata (DURVAR) per 16 allo scopo
di far posto alle note più lunghe, e
poi moltiplica quel valore per il tem¬
po.
Il risultato ultimo è che DUR¬
VAR è un numero di 24 bit, in gra¬
do di eguagliare qualsiasi valore com¬
preso fra 0 e 16.777.215. E' questa
la ragione dell’ampia gamma di dura¬
te possibili. Il loop sonoro fa sem¬
pre i passaggi per DURVAR, sia o
no commutato l’altoparlante. E' la
variabile di altezza PITCH a dire
quanto spesso l'altoparlante debba es¬
sere commutato durante ogni passag¬
gio, determinando così la frequenza
(altezza) del suono. Così altezza e du¬
rata sono tenute indipendenti, e vie¬
ne perciò notevolmente semplificata
la stima delle variabili occorrenti
per la nota desiderata.
I limiti
dei programma
Nonostante le altezze dei suoni sia¬
no per quanto possibile conformi al-
l'algoritmo della routine del suono
ci sono nel programma alcuni limiti
imposti dalla variabile di frequenza a
8 bit. Alcune delle altezze daranno fa¬
stidio al musicista dal fine orecchio.
Ma per il resto la musica codificata
come parte di un programma in Ap¬
plesoft Basic avrà un bel suono.
Inoltre, la variabile del tempo è
molto precisa, ma il programma in
Applesoft può influire sul tempo in¬
tercorrente fra le note. Ovviamente
se si mettono varie linee di codice
Basic o istruzioni REM fra le chia¬
mate degli & ci sarà un intervallo di
tempo fra le note. Per questa stessa
ragione sedici differenti note di un se¬
dicesimo (semicrome) non avranno e-
sattamente la stessa durata di una no¬
ta intera (semibreve), a causa del
tempo di overhead del Basic. Tutta¬
via la differenza sarà molto lieve, e
il novantotto per cento di noi non la
noterà affatto.
Esiste ancora un inconveniente:
supponiamo che si voglia far suona¬
re a Millenote una nota di un trenta¬
duesimo (biscroma) all'altezza La.
Battiamo il comando &AT. Ma ab¬
biamo inavvertitamente scritto AT,
che è una parola riservata dell'Apple¬
soft! Dato che le parole riservate so¬
no simboleggiate con valori di un
byte, il programma non interpreta
nel modo giusto i risultati. Ci sono
altre due parole riservate dell'Apple¬
soft che costituiscono difficoltà po¬
tenziali, GET e DEL. Si utilizzereb¬
be il comando &GET160 per suona¬
re un Sol di un ottavo (croma) a un
tempo di 160 movimenti al minuto,
e il comando &DEL per suonare una
croma Re in legato, ma non si otter¬
rebbe il risultato voluto. Così pure
il comando &GR non suonerà la no¬
ta Sol seguita da una pausa.
Questi inconvenienti possono esse¬
re eliminati nel modo seguente: inve¬
ce del comando &AT, usate il co¬
mando &XT:&A. Avrete lo stesso
risultato, senza adoperare una parola
riservata. Invece di &GET160 usate
&XET160:&G, e invece di &DEL
&XEL:&D.
Esistono diverse caratteristiche mu¬
sicali che è difficile codificare quan¬
do si adopera Millenote. Per esem¬
pio il portamento, il trillo, il mor¬
dente, il gruppetto, le note con dop¬
pio punto e via dicendo sono tutte
cose difficili, ma non impossibili,
da generare.
Due serie limitazioni sono invece
la mancanza di elementi dinamici
musicali come il piano, il forte, il
crescendo (graduale aumento di inten¬
sità) e il diminuendo (graduale dimi¬
nuzione di intensità), e la mancanza
di voci multiple (si ottiene solo un
suono alla volta). Sono reperibili in
commercio programmi che hanno
qualcuna di queste capacità, ma così
si perde la facilità d'uso, che è il pun¬
to forte di Millenote.
Chi fosse interessato ad apportare
qualche modifica al programma,
troverà sul dischetto del Disk
Service il disassemblato del listato
1. Le sue dimensioni ne hanno
impedito invece la pubblicazione in
queste pagine.
Questo programma è disponibile
su dischetto. L’elenco, i prezzi
e le modalità d’ordine di questo
e degli altri dischetti disponibili
sono riportati nella rubrica
Disk Service.
^_ J
®ByNibble e Applicando
Dai vostri file di testo
otteniamo velocemente la
fotocomposizione
Anche da Macintosh® in
“Modo Grafico” è
possibile miscelare il
testo con figure, grafici,
istogrammi... ottenendo
un risultato di alta qualità
grazie alla nuova
fotocompositrice con
risoluzione di ben
2540 linee/pollice
Altrettanto rapidamente
provvediamo alla stampa
dei vostri manuali, libri,
cataloghi, listini, eco.
viappìcinì
Tecnologie d’avanguardia
per stampati di qualità e grandi tirature
Bruno Viappiani spa
Milano, Viale Argonne 28
tei. 02/73.84.341
telex 325421 VI APPI-I
29
Applicando ha un nuove
annuale con disco
programmi per Macintosh
prevede 10 numeri di Applicando,
ognuno corredato di un dischetto
da 3 pollici e
1/2 su cui sono
registrati tutti ì programmi per
Macintosh pubblicati sulla rivista.
Inoltre sono compresi nel prezzo
dell'abbonamento l'ultima
edizione delle Pagine
del software e
dell'hardware
per Apple e un
portadischetti.
Abbonamento tradizionale con dono?
Abbonamento biennale con supersconto?
Oppure la nuovissima formula
rivista con dischetto, per non avere più
problemi di digitazione?
Per tutti, comunque, tanti
programmi, notizie, consigli e...
presente...
L'abbonamento annuale con disco
programmi per Apple II
prevede 10 nùmeri di Applicando,
ognuno corredato con un dischetto
da 5 pollici e 1/4 su cui sono
registrati tutti i programmi per Apple II
pubblicati sulla rivista.
Inoltre sono compresi nel prezzo
dell'abbonamento l'ultima edizione
delle Pagine del software e dell'hardware
per Apple e un
portadischetti.
disKf
Compilare e spedire
Editronica srl, Corso Monforte 39,20122 Milano.
Il programma mostrato nel listato
indica l'uso di questa tecnica.
Prima genera un finto menu, poi
ncia l’ON BREAK GOSUB e
REAK ON per intercettare il co¬
lando di arresto. Un loop infinito
tende il break. Uno dei motivi per
luali questa routine risulta molto u-
!e nei lavori di programmazione è
he tutto quanto c'è sullo schermo
iene mantenuto invariato fino allo
finito di esaminare il display basta
un tocco di mouse per riavere i me¬
nu originali e il listato Basic, pron¬
to per le correzioni. Un veloce pro¬
memoria: la finestra del listato può
essere espansa fino alle dimensioni
massime dello schermo con un dop¬
pio click sulla barra del titolo. E'
spiegato nel manuale, ma senza mol¬
ta evidenza, e sono in pochi a sfrutta¬
re questa comoda possibilità.
Listato 1. Menu reset
'Menu Reset
'MS Basic 2.0 o 2.1 - Binario e Decimale
CLS
'Crea i menu
MENU 1,0,1,"Prova Menu"
MENU 1,1,1,"Elemento 1"
MENU 1,2,1,"Elemento 2"
MENU 1,3,1,"Elemento 3"
MENU 1,4,1,"Elemento 4"
MENU 2,0,0,""
MENU 3,0,0,""
MENU 4,0,0,""
MENU 5,0,0,""
LOCATE 7,17
PRINT "Usa <Control> <Shift> punto per uscire."
ON BREAK GOSUB uscita
BREAK ON
ripeti :
GOTO ripeti
uscita :
BREAK OFF
BEEP
WINDOW 4,"", (360,21)-(508, 44),3
MOVETO 10,15
PRINT "Programma arrestato";
pippo=MOUSE(0) 'aggiorna la posizione del mouse
x=MOUSE(l) 'legge la posizione X del mouse
WHILE x=MOUSE(1)* 'attende il movimento del mouse
pippo=MOUSE(0)
WEND
WINDOW CLOSE 4
MENU RESET
LIST
END
© By Nibble e Applicando
33
...ma anche un passato.
f Per ordinare gii arretrati compila il N i
tagllaAMo^ellapaglna^precedente_ J
Lire 7.000 • Sa-
e le malattie e re-
he • Come far parla-
po personalizzato
del cielo natale •
non perdere o-
one-liner-Ba-
collegamento diretto
razione testo e l'am-
ontrollare il valore di
duare gli errori • Ecco
ull'uso della grafica
• Speciale Appli-
n equilibrio • Macin-
del mese.
5 - Lire 7.000 •
arredare la vo-
ne direttamente sul
a corsa d'auto stile
n modo per accede¬
tene di stampa by
mma ‘Controllo di-
one-liner-^er Ap-
foglio elettronico in¬
ala management «
3 - settembre/ottobre 1983 - Lire
7.000 • Un programma di Data Base ac¬
cessibile a tutti • Ecco Logo in italiano • U-
na scheda e una telecamera e il tuo Apple
vede • Etichette spiritose o bizzarre • Pic¬
coli editori, club e associazioni possono rag¬
giungere soci e abbonati facilmente • Equo
canone con VisiCalc • Una routine e la E-
pson M 80 stampa i grafici • Seconda pun¬
tata del corso di Basic • Con un uso accor¬
to del WPL ecco pronto un documento di
più pagine, personalizzato, con decine di o-
pzioni diverse • Dadi e punti (gioco).
4 - novembre/dicembre 1983 - Lire
7.000 • Tre schede, una tastiera e un po'
di software: il computer diventa un'intera
orchestra • Pianoforte, organo e violino in
Pascal • Per imparare a leggere più veloce¬
mente (e fare esercizio di inglese) • Elogio
del VisiDex • Grazie Lisa: cos'è e a chi può
servire il rivoluzionario personal Apple •
» ùndici • Per chi ha dischetti del Si-
ascal, ecco una rassegna delle
possibilità offerte e dei comandi a disposi¬
zione • Dedalus • Terza puntata del corso
Basic • Guida ragionata dei software in
commercio per la gestione condominiale •
Una numeric keypad fatta solo di so¬
ftware.
5 - gennaio/febbraio 1984 - Lire
7.000 • La tecnologia del mouse applica¬
ta all'Apple II • In memoria i vostri impegni
di un anno intero • Contabilità semplificata
• Battaglia di cannoni • Investor, uno dei mi-
pliori programmi che fornisce in tempo rea-
dàT'pòuicfe
1/2 su cui sono
registrati tutti 1 programmi per
Macintosh pubblicati sulla rivista.
Inoltre sono compresi nel prezzo
dell'abbonamento l’ultima
edizione delle Pagine
del software e
dell'hardware
per Apple e un
portadischetti.
più esperti • Rotazione e traslazione delle fi¬
gure piane e somma delle forze parallele •
Gerarchia, sequenza e ombra per visualiz¬
zare il parentado: quinto appuntamento
con il Pascal • Come ottenere grandi risul¬
tati nella grafica ad alta risoluzione utiliz¬
zando un Apple II e un TV color • Una sem¬
plice routine per disporre sempre della data
memorinata • Macintosh: Guida al-
l’Ms-Basic.
10 - novembre 1984 - Lire 7.000 •
Una guida per entrare con l'Apple nelle reti
nazionale e internazionale • L'Apple Ile sti¬
la una graduatoria delle autovetture d'epo¬
ca • Come gestire tre attività professiona¬
li diverse con un Apple • Niente paura se i-
nawertitamente battete New o Fp! • Dos:
un programma per ritrovare sempre i dati
che sembrano scomparsi • L'ottava punta¬
ta di Applesoft: come mantenere allineate
le righe • Differenze tra Integer e Appleso¬
ft e language card • Parametri, procedure
e funzioni nella sesta puntata del Pascal ■
Appliscuola: rette nel piano cartesiano, e-
quazioni e calcolo del coefficiente di corre la-
zione • Macintosh: Computerizzate il li¬
bro cassa con il Mac.
11 - dicembre 1984 - Lire 7.000 • U-
na banca dati per avere sotto controllo un
articolo, il suo numero di pagina, la rivista
su cui è stato pubblicato • Per recuperare
un file cancellato accidentalmente • Tutti i
trucchi per personalizzare l'Hello o per pro¬
teggere i listati da occhi indiscreti • L'Apple
sulla scrivania: perché non lasciarvi un
Mac • Magic e File Vision • Lt* parade
dei mese.
16 - maggio 1985 - Ure 7.000 • Un
sistema di data base nutrizionale per per¬
sonalizzare una dieta bilanciata, a lunga o
a breve scadenza • Corso AppleWorks: co¬
me farsi un'agenda telefonica • Pompieri:
un gioco d'azione e abilità • Un programma
capace di trasformare l'Apple II in un fede¬
le e preciso timer • Una tavola di disegno
per emulare i più potenti programmi di
CAD/CAM • Come scrivere un program¬
ma compiuto su una linea sola. Ecco i primi
venti one-liner • Una utility che facilita il la¬
voro di correzione di un listato, rendendone
più comoda la lettura • Macintosh: Jazz
• Hit parade del mese.
17 - giugno 1985 - Lire 7.000 • Le
principali nozioni, un dizionario nautico e
due simulatori di regate per entrare nel
mondo della vela • Un programma che tra¬
sforma l'Apple in una sofisticata calcolatri¬
ce RPN • Una piantina per pianificare qua¬
lunque itinerario stradale americano tra
ben 171 città diverse • Un uragano si sca¬
tena sulla città: riuscirete a trovare rifu¬
gio? • In AppleWorks la gestione di un ne¬
gozio • Un programma per eseguire analisi
ai carattere statistico con la possibilità di
chiedere previsioni • Sparate a vista, ma
attenti a non essere colpiti! • Continua la
serie degli One-liner, i programmi su una li¬
nea sola • Macintosh: Smooth Talker •
Hit parade del mese.
1985 - Lire
r Apple di Trivia, il
ezzo mondo • Con-
rks con le funzioni
ìa utility per perso-
• Un program-
ento dei propri biori-
r sapere i consumi
in calcoli e fogliet-
l’andamento di un
Poche linee di pro¬
ritte perfettamente
mpante ■ ProDOS:
Lire 7.000
quando sono
Digger e Clau-
er marziani soprav-
ifisti il secondo-Tut-
gamento in rete per
*ti dello studio lega-
avvocati scritto da
in memoria un pro¬
di sopra di un codi-
mouse:accop-
cassa-ma-
ne-liner ■ Inizia una
ella grafica ad altis-
acihtosh: Microso-
che vale davvero
iornatissimo catalo-
Prima puntata di un corso di programma¬
zione avanzata in Basic • Terzo articolo
sulla doppia HhRes: le figure a blocchi •
Macintosh: hard disk a confronto • Con¬
tabilità generale o forfettaria: 3 pacchetti
a confronto • Hit parade del mese.
22 - dicembre 1985/gennaio 1986
- Lire 7.000 • Una rassegna completa
dei tipi di stampante, con Te caratteristi¬
che tecniche e le prestazioni, e dei relativi
accessori e una tabella comparativa di
trenta macchine provate direttamente •
Memodesk: non la solita agenda elettroni¬
ca ma un calendario intelligente da scriva¬
nia • BlackJack • Due programmi per gli
studi dentistici • Continua il corso ai pro¬
grammazione avanzata in Basic • Effetti
speciali: Spinnerconsente lo scorrimento o-
rizzontale di una stringa • Dieci one-liner •
Calendario perpetuo dal 1753 in poi per Ap¬
ple e Mac ■ Quarta puntata di grafica: ani¬
mazione • Appliscuola: il numero di Avoga-
dro • Macintosh: stampare un catalogo
professionale di alta qualità a costi Conte¬
nuti-Hit parade con tantissimi nuovi pro¬
grammi.
23 ■ febbraio 1986 - Lire 7.000 •
Speciale editoria: Macintosh, Apple II, La¬
serWriter e tutto il software necessario per
creare un centro stampa autonomo • Co¬
me programmare il mouse dell'Apple II •
Guerre stellari • Harmony ■ Come far scor¬
rere 18 immagini sul video ■ Grafica: scorri¬
mento orizzontale di una stringa sul video •
Corso avanzato di Basic (3) • Sette one-li¬
ner ■ Scuola: resoconto su Pisa • Funzioni
e grafici tridimensionali • La tavola degli e-
lementi chimici • Macintosh: la compatibi¬
lità Mac-IBM • Tutto sul CFS • L'hit-para-
de del mese.
24 ■ marzo 1986 - Lire 7.000 • Spe¬
ciale architetti e ingegneri: tanto software
per risolvere al computer i problemi di com¬
puto e disegno • Executive Cardfile: un ar¬
chivio intelligente, organizzato in più sche¬
dari • Screen dump a 80 colonne in ogni mo¬
mento della programmazione • Apple Mae¬
stro insegna a comporre musica anche a-
gli stonati, e senza fatica • A che ora na¬
scono i vostri file? Senza acquistare sche¬
de software, chiedetelo al programma Ora
e data • Archiviare con il mouse, sull’Apple
II: con Ped-one • Grafica: lo scorrimento
verticale • Un'agenda elettronica che com¬
pone anche il numero • Appliscuola: disegni
prospettici con rimozione delle parti nasco¬
ste e un trivia, per tutte le materie, da im¬
postarsi a piacere • Macintosh: guida al¬
l'acquisto del database giusto • Macnews
• Tutti i linguaggi per la programmazione •
Grafici: un programma che sa crearli tutti
25 ■ aprile 1986 - Lire 7.000 • Spe¬
ciale comunicazioni: modem e banche dati
• Chart Manager: programma professiona¬
le per la gestione dei dati e la restituzione
grafica in curve, barre e torte • Apple Che-
cker: controlla gli errori di copiatura dei
listati- Grafica: (a logica di programmazio¬
ne in doppia alta risoluzione • Buffer di
stampa: ricaviamolo dall'Apple • Oneliners
• Appliscuola: variazioni di velocità in funzio¬
ne di concentrazione dei reagenti e tempe¬
ratura • Macintosh: ilBernoulli Box, che
archivia su cartuccia • Macnews • Una da¬
tabase veloce, versatile e personalizzato
da una potente struttura a schede.
26 ■ maggio 1986 ■ Lire 7.000 Spe¬
ciale: gli spreadsheet più potenti per Apple
Il e Mac • Meandro: un adventure tutto i-
taliano • Grafica: altri segreti sull'animazio¬
ne in doppia alta risoluzione • Appliscuola:
per risolvere sistemi di equazioni lineari •
Ants! Il terrore, con le sembianze di
gigantesche formiche, viene dal giardino •
Oneliners • Quale sarà il futuro di Apple II?
Un'intervista con John Sculley e molte novi¬
tà da Cupertino • Macintosh: mettere in
rete Sunol, il disk server piccolo e potente •
Mac+//: un programma che simula su
Mac il video Applesoft? Certo, per utilizza¬
re ancora tutta la biblioteca programmi
del II • Windowd Toolbox, perché ogni pro¬
grammatore vorrebbe poter modificare le
finestre del toolbox • Bioritmi • Macnews.
Se, correggendo un programma, date il comando di break (<Command>.),
vi ritrovate nella finestra di uscita i vecchi menu. E allora attivate la finestra
dei comandi diretti, resettate il menu e date il <Command> L...
Invece c'è un modo molto più rapido.
Se il menu si
resetta da sé
L'ambiente di lavoro dell'MS Ba¬
sic, con i suoi comandi TRACE, il
potente editor, le finestre separate
per l'output, per il listato e per i co¬
mandi diretti, è uno tra i più attraen¬
ti e sofisticati in assoluto. Nono¬
stante ciò correggere un programma
che utilizza menu personali può crea¬
re una serie di problemi che mai si
verificano con i classici interpreti
Basic. Per esempio quando si dà il
comando di break (<Command> . )
può capitare di trovarsi con la fine¬
stra di uscita adomata dei menu del-
l'appena defunto programma. In que¬
sto caso per ottenere la finestra del li¬
stato dovete attivare la finestra dei
comandi diretti, battere MENU RE¬
SET, richiamare il listato dal menu
corrispondente o battere cComman-
d> L.
Abbiamo attraversato questa se¬
quenza di operazioni molte volte.
Una miniroutine
per fare prima
Per evitare di doverlo fare ancora
ecco la subroutine Uscita, generata
dal listato 1. Per attivarla si usano
le funzioni ON BREAK GOSUB e
BREAK ON, per intercettare il co¬
mando di break. Quando quest'ulti¬
mo viene dato ecco cosa accade:
1) Si esegue BREAK OFF nel caso
si voglia dare un secondo (e vero)
break, se necessario.
2) Si simula uno STOP, con un
BEEP, e una nuova finestra (numero
4) è aperta nell'angolo in alto a de¬
stra dello schermo per annunciare
che lo stop è avvenuto.
3) Un loop determina se il mouse è
stato mosso. Finché il mouse è im¬
mobile lo schermo non subisce alte¬
razioni. Questo è esattamente identi¬
co a quello che si ottiene con il co¬
mando STOP.
4) Si muove il mouse: allora viene
rimossa la finestra 4, si resettano i
menu, si attiva la finestra del li¬
stato.
Il programma mostrato nel listato
1 indica l'uso di questa tecnica.
Prima genera un finto menu, poi
lancia l’ON BREAK GOSUB e
BREAK ON per intercettare il co¬
mando di arresto. Un loop infinito
attende il break. Uno dei motivi per
i quali questa routine risulta molto u-
tile nei lavori di programmazione è
che tutto quanto c'è sullo schermo
viene mantenuto invariato fino allo
Listato 1. Menu reset
□□□□□□□□□□□□□□a
mnaaaaaaaaaaaacu
□□□□□□□□□□□□□□CU
□ Cdd- —□□□
spostamento del mouse. Quando si è
finito di esaminare il display basta
un tocco di mouse per riavere i me¬
nu originali e il listato Basic, pron¬
to per le correzioni. Un veloce pro¬
memoria: la finestra del listato può
essere espansa fino alle dimensioni
massime dello schermo con un dop¬
pio click sulla barra del titolo. E'
spiegato nel manuale, ma senza mol¬
ta evidenza, e sono in pochi a sfrutta¬
re questa comoda possibilità.
'Menu Reset
'MS Basic 2.0 o 2.1
Binario e Decimale
CLS
'Crea i menu
MENU 1,0,1,"Prova Menu"
MENU 1,1,1,"Elemento 1"
MENU 1,2,1,"Elemento 2"
MENU 1,3,1,"Elemento 3"
MENU 1,4,1,"Elemento 4"
MENU 2,0,0,""
MENU 3,0,0,""
MENU 4,0,0,""
MENU 5,0,0,""
LOCATE 7,17
PRINT "Usa <Control> <Shift> punto per uscire."
ON BREAK GOSUB uscita
BREAK ON
ripeti :
GOTO ripeti
uscita :
BREAK OFF
BEEP
WINDOW 4,"", (360,21)-(508, 44),3
MOVETO 10,15
PRINT "Programma arrestato";
pippo=MOUSE(0)
x=MOUSE(1)
WHILE x=MOUSE(1)
pippo=MOUSE(0)
WEND
WINDOW CLOSE 4
MENU RESET
LIST
END
'aggiorna la posizione del mouse
'legge la posizione X del mouse
'attende il movimento del mouse
©ByNibblee
33
AST
msma
Conoscere le stelle significa dedicare intere notti all'affascinante fatica
del telescopio. Per conoscere poi il cielo da un solo punto di vista.
Con questo programma potete osservarlo da qualsiasi punto dell'emisfero
nord e potete additare qualsiasi stella: il programma ve ne dirà il nome.
. A che punto
è la notte
Per un astronomo dilettante il tem¬
po passato a scrutare in un telesco¬
pio non finisce mai: sono necessarie
innumerevoli notti, d’estate e d'in¬
verno, per imparare a percorrere le
vie del cielo. I cartelli stradali del cie¬
lo notturno sono le costellazioni.
Non ci vuole molto tempo per impa¬
rare che le due stelle^raffiguranti le
ruote posteriori del Gran Carro pun¬
tano verso la stella poltre, e che le
tre stelle del timone puntano verso
Arturo, una stella molto luminosa,
di prima magnitudine.
Il passo successivo consiste nel-*
rapprendere i nomi delle altre stelle
• •
•
di grande visibilità e la loro posi-
• zione. Nella maggior parte delle
grandi città è possibile recarsi a un
planetario per vedere le stelle proiet¬
tate sul soffitto di una gigantesca cu¬
pola. I meccanismi di un planetario
sono'oltremodo complicati e costo¬
si, e riescono a spostare il punto di
osservazione in qualsiasi luogo della
superficie terrestre, andare avanti e
indietro nel tempo e individuare le
varie stelle. Con Planetario, un pro¬
gramma didattico per l'astronomo
principiante, si può compiere la
maggior parte di queste funzioni uti¬
lizzando il display dell’Apple.
• •
Come si usa
il programma *
Per avviare il programma battete
RUN PLANETARIO.
Dopo il display iniziale il‘pro¬
gramma carica la sua tavola delle
stelle e vi chiede se volete ripristina¬
re un vecchio impianto. •
Se rispondete S, chiede un nome
di file e voi potete caricare un set di
#dati comprendente ora e coordinate di
una precedente esecuzione.
Questo vi mette in grado di realiz¬
zare a poco a poco un atlante stella¬
re. Se rispondete N il computer
mmmm
* •
34
vi chiede le informazioni occorrenti
per creare una carta stellare per la lo¬
calità e la data specifiche.
Facciamo una prova a titolo d’e¬
sempio. Anzitutto dovete indicare la
longitudine e la latitudine, utiliz¬
zando la tavola pubblicata qui sotto.
Il programma chiede:
LONGITUDINE (GRADI = -180 A
180):
Introducete la longitudine in gradi
e premete <RETURN>. Poi introdu¬
cete allo stesso modo il numero dei
primi. Alla richiesta:
LATITUDINE (0 A 90):
introducete la vostra latitudine in gra¬
di e premete <RETURN>. Il pro¬
gramma funzionerà solo per l'emisfe¬
ro boreale, e quindi non sono am¬
messi valori negativi. La domanda
successiva è:
DATA (MESE = 1 A 12):
Introducete il mese e premete <RE-
TURN>, quindi il giorno e premete
<RETURN>. Poi è la volta dell’ora
solare (se si è in epoca di ora legale
dovete prima fare la conversione in
ora solare):
ORA (HR = 0 A 23):
Usate il sistema orario di 24 ore,
in cui la mezzanotte è indicata con 0
ore e si aggiunge 12 a tutte le ore
pomeridiane. Dopo aver introdotto
l’ora introducete i minuti. Infine indi¬
cate l’orizzonte che volete osservare:
ORIZZONTE (N = NORD, S =
SUD):
Il programma può visualizzare le
stelle o sopra l’orizzonte settentriona¬
le o sopra quello meridionale. Intro¬
ducete la vostra scelta premendo ri¬
spettivamente N o S.
La volta celeste
sullo schermo
Quando avete immesso tutte que¬
ste informazioni lo schermo viene
ripulito e viene disegnata un’immagi¬
ne in alta risoluzione del cielo corri¬
spondente alla data, all’ora e al luo¬
go che avete scelto (figure 2 e 3).
Il cielo notturno è circondato da una
linea di delimitazione. Alla sommità
dello schermo c'è lo zenit, che è il
punto del cielo situato sulla vertica¬
le di osservazione. La base dello
schermo è l’orizzonte. I lati destro e
sinistro dello schermo sono l’est e
l'ovest, a seconda dell'orizzonte da
voi scelto.
Tutte le stelle fino alla magnitudi¬
ne tre sono viste nelle loro vere posi¬
zioni relative. In aggiunta vengono
mostrate alcune stelle di magnitudi¬
ne maggiore per rendere più ricono¬
scibili certe costellazioni. Sono uti¬
lizzati quattro diversi simboli (un
rombo, un grande segno di più, un
piccolo segno di più e un punto) per
rappresentare diverse fasce di magni¬
tudine.
Alla base dello schermo Hi-Res si
trovano tre righe che vi dicono la da¬
ta, la posizione (longitudine e latitu¬
dine) e l'ora siderale. La riga più in
basso vi dice quali siano i comandi
validi. L'orologio dell’ora siderale
parte e cammina fintanto che non in¬
troducete un parametro nuovo. Ogni
mezz'ora lo schermo viene pulito e
le posizioni delle stelle sono aggior¬
nate, di modo che esse danno l'im¬
pressione di spostarsi attraverso il
cielo come fanno nel cielo reale; po¬
tete disabilitare la pulitura dello
schermo selezionando il modo di vi¬
sualizzazione continua nel menù
principale.
Se avete selezionato l’orizzonte set¬
tentrionale vedrete che le stelle non
si spostano seguendo un cammino
da est a ovest: sembra invece che gi¬
rino in cerchio attorno a un punto
nel mezzo dello schermo. Questo
punto è il polo celeste nord, che è
molto vicino alla stella polare.
I tre comandi disponibili sono Tro¬
va, Nome ed <ESC>ape. Trova e
Nome vengono descritti più avanti,
<ESC> vi porta al menù principale.
Se premete accidentalmente <ESC>
potete ripristinare il display delle
stelle, senza dover perdere tempo per
un ricalcolo, premendo nuovamente
<ESC> prima di fare una qualsiasi
scelta sul menù.
Come cambiare
i parametri
Arriviamo così all’autentica forza
del Planetario. Se volete vedere
quale aspetto ha il cielo stellato
visto da un’altra località, oppure in
un’altra ora, non c'è alcun problema.
Per cambiare latitudine e longitudine
vi basta premere <ESC> e seleziona¬
re la voce 2 del menù (figura 1).
Anche se le due località sono nel¬
lo stesso fuso orario, possono
trovarsi a longitudini differenti e le
loro ore siderali possono di conse¬
guenza essere diverse anche se le lo¬
ro ore medie sono identiche. Pertan¬
to il programma vi chiede di reintro¬
durre l’ora ogni volta che cambiate
la longitudine.
Dato che il display dell’ora è in o-
| Prov.
Long.
Lat.
Prov.
Long.
Lat.
Prov.
Long.
Lai
Prov.
Long.
Lat.
Prov.
Long.
Lat.
Prov.
Long.
Lat
AG
-13.3
37
BZ
-11.15
46
FO
-12
44
MS
-10
44
PZ
-15.45
40
TE
-13.3
42
AL
- 8.3
44
CA
-9
39
FR
-13.15
41
MT
-16.3
40
RA
-12
44
TN
-11
46
AN
-13.3
43
CB
-14.3
41
GE
-8.45
44
NA
-14.15
40
RC
-15.3
38
TO
-7.3
45
AO
-7.15
45
CE
-14.15
41
GO
-13.3
46
NO
-8.3
45
RE
-10.3
44
TP
-12.3
38
AP
-13.3
42
CH
-14
42
GR
-11
42
NU
-9.15
40
RG
-14.55
37
TR
-12.3
42
AQ
-13.15
42
CL
-14
37
IM
-8
44
PA
-13.15
38
RI
-12.45.
42
TS
-13.45
45
AR
-11.45
43
CN
-7.3
44
IS
-14.15
41
PC
-9.3
45
RO
-11.45
45
TV
-12.15
45
AT
-8
45
CO
-9
45
LE
-18.15
40
PD
-11.45
45
Roma
-12.15
42
UD
-13
46
AV
-14.45
41
CR
-10
45
LI
-10.15
43
PE
-14
42
SA
-14.55
40
VA
-8.45
45
BA
-16.45
41
CS
-16.15
39
LT
-12.45
41
PG
-12.15
43
SI
-11.15
43
ve
-8.15
45
BG
-9.3
45
CT
-15
37
LU
-10.3
43
PI
-10.15
43
SO
-9.45
46
VE
-12.15
45
BL
-12
46
CZ
-16.3
39
MC
-13.15
43
PN
-12.3
46
SP
-9.45
44
VI
-11.3
45
BN
-14.45
41
EN
-14.15
37
ME
-15.3
38
PR
-10.15
44
SR
-15.15
37
VR
-11
45
BO
-11.15
44
FE
-11.3
44
MI
-9
45
PS
-12.45
44
SS
-8.3
40
VT
-12
45
BR
-17.45
40
FG
-15.3
41
MN
-10.45
45
PT
-10.45
44
SV
-8.15
44
BS
-10
45
FI
-11.15
1
43
MO
-10.45
44
PV
-9
45
TA
i
-17.15
i
40
_
_
35
ra siderale il menù principale visua¬
lizza anche l’ultima ora solare che a-
vete immesso. Usate questo valore
quando calcolate gli scarti d’ora. Per
esempio il menù potrebbe indicare
che l’ora siderale è 06:30, e che l’ulti¬
ma ora da voi introdotta è 22:15. In
tal caso per avere il cielo come si
presenterà un'ora più tardi dovete
cambiare l'ora portandola a 23:15,
non a 07:30. Le prime sei voci del
menù principale si spiegano pratica-
mente da sole. Occorre invece qual¬
che spiegazione per le opzioni salva¬
re e caricare (le voci 7 e 8). Questi
comandi vi permettono di farvi un ar¬
chivio di istantanee del cielo. Per e-
sempio potreste salvare varie imma¬
gini del cielo per sapere come si pre¬
senteranno le costellazioni a interval¬
li regolari durante l'anno. Notate che
questa opzione non salva in realtà la
videata, salva soltanto i parametri se¬
lezionati al presente.
Le opzioni di salvataggio e carica¬
mento sono facili da usare. Vi sarà
chiesto il nome del file. Se premete
<RETURN> viene visualizzata la di¬
rectory del dischetto e viene ripetuta
la richiesta NOME.FILE.
L'identificazione
delle stelle
Adesso sapete come fare per predi¬
sporre l’ora e il luogo e per trasferir¬
vi in un'altra posizione. Ma come fa¬
re per identificare le stelle dalla posi¬
zione in cui siete? Quando l'interes¬
se per l'astronomia aumenta si prova
molta soddisfazione se osservando il
cielo si è in grado di individuare per
nome le varie stelle. Planetario vi
aiuta anche in questo. Supponiamo
che vediate una stella sullo schermo
e ne vogliate sapere il nome. E' suf¬
ficiente battere N. Il programma dise¬
gna un quadratino nel centro dello
schermo. Mediante i tasti I, J, K e
M (e nel II Plus <REPT>) spostate
il quadratino in su, a sinistra, a de¬
stra e in giù fino a quando racchiude¬
rà la stella che volete identificare.
Premete <RETURN>. Se il nome
della stella è nella tavola delle stelle
il computer la visualizzerà. Se nel
quadratino si trova più di una stella
sarà visualizzata la prima della lista
delle stelle. Ma dovrebbe essere pos¬
sibile posizionare il quadrato in mo¬
do che racchiuda soltanto la stella
che volete identificare.
Adesso supponiamo che conoscia¬
te già il nome di una stella, ma vo¬
gliate sapere in che punto del cielo
essa si trova. Basta battere F. Il pro¬
gramma vi chiederà il nome della
stella. Introducete questo nome e pre¬
mete <RETURN>. Se la stella è nel¬
la tavola, un quadrato lampeggerà
sullo schermo attorno alla stella per
una decina di secondi. Se nel luogo
in cui siete a quell'ora la stella non
fosse visibile il programma ve lo di¬
rebbe. Per uscire da questo modo pre¬
mete <RETURN> senza introdurre
il nome di alcuna stella. L'orologio
siderale ripartirà.
Un'osservazione sui nomi usati
per indicare le stelle: la maggior par¬
te delle stelle più luminose ha anti¬
chi nomi arabi, greci o latini. In
qualche caso viene usato più di un
nome antico. In tempi più moderni
sono stati adottati metodi più siste¬
matici per dare un nome alle stelle.
Uno di questi sistemi usa lettere gre¬
che per rappresentare le stelle in ma¬
gnitudine ascendente (ossia alfa è la
stella più luminosa) per ciascuna co¬
stellazione. In base a questo sistema
Sirio è chiamata Alfa Canis Majo-
ris. Un sistema più recente numera
le stelle in ascensione retta crescente
per una data costellazione. In questo
programma i nomi delle stelle sono
per la maggior parte quelli antichi.
Come funziona e
come farlo crescere
Per esigenze di spazio non è possi¬
bile pubblicare i listati del program¬
ma Planetario, che Applicando offre
però a un prezzo favorevolissimo
(Planetario + Supershopper lire 35
mila); per ordinarlo si utilizza il ta¬
HENU DATI
~> 1. LONGITUDINE: -9 BRADI 0 PRIMI
2. LATITUDINE: 43 BRADI
3. DATA: 15/B
4. ORA SIDERALE:22:24 (INPUT 0:00)
5. ORIZZONTE: S
6. TRACCIAMENTO:INDIVIDUALE
7. SALVARE I DATI SUL DISCO
8. CARICARE I DATI DAL DISCO
9. FINE
USA LE FRECCE 0 SCEGLI UN NUMERO:!
<ESC> PER RIVEDERE LA MAPPA
Figura 1.
Il menù principale di Planetario
gliando del Disk Service.
Chi volesse apportare modifiche al
programma, comunque, potrà farlo
senza difficoltà listandolo diretta-
mente dal dischetto.
Per comprendere la teoria del fun¬
zionamento del programma, e
potervi così intervenire, occorre ave¬
re familiarità con i concetti di ora si¬
derale, ascensione retta e declinazio¬
ne. L'ora siderale è il sistema di mi¬
surazione del tempo in relazione alle
stelle. A causa della rotazione della
terra un giorno siderale è di circa
♦
+
W E
’ ♦
+ '
N
Figura 2. Il cielo a mezzanotte di ferragosto, visto da Milano: orizzonte nord
36
quattro minuti più lungo di un gior¬
no solare, e quindi l’ora siderale è
considerevolmente diversa anche dal¬
l'ora media di Greenwich. Se si im¬
maginano le stelle incollate all’inter¬
no di un’enorme sfera celeste, con
un polo nord e un polo sud, l’ascen¬
sione retta (A.R.) è l’equivalente del¬
la longitudine e misura la posizione
radiale della stella.
La declinazione (DEC) è l’equiva¬
lente della latitudine, e misura la po¬
sizione della stella dall'equatore cele¬
ste verso uno dei poli celesti. La po¬
sizione di una stella è solitamente e-
spressa in ore e minuti di A.R. e gra¬
di di declinazione.
Il programma produce un’immagi¬
ne grafica in alta risoluzione del cie¬
lo notturno che mostra le stelle mol¬
to vicine alle loro autentiche posizio¬
ni relative. Naturalmente ogni tenta¬
tivo di proiettare una superficie sferi¬
ca, qual è il cielo, su un piano avrà
come conseguenza una certa distor¬
sione. La distorsione viene ridotta al
minimo restringendo la visuale all'o¬
rizzonte settentrionale o a quello au¬
strale e calcolando le posizioni della
stella per ciascun insieme di parame¬
tri. Per inciso, le principali manche¬
volezze degli altri programmi del ge¬
nere dipendono dal fatto che non cal¬
colano le posizioni delle stelle per
un’ora specifica né restringono la vi¬
suale. In questo modo non presenta¬
no un'autentica veduta del cielo not¬
turno e possono spesso confondere.
Ci sono algoritmi separati per gli
orizzonti settentrionale e meridiona¬
le (listato 2). Se viene selezionato
l’orizzonte meridionale il program¬
ma controlla la presenza di stelle cir¬
cumpolari (non visualizzate) e stelle
con declinazione (DEC) minore del
negativo della latitudine (linee 780-
820) che non sono mai visibili.
Poi, dopo la conversione a linea 840
dell’ascensione retta da ore a radianti,
la linea 850 determina se la stella
sia sorta. Date le variabili:
Z = angolo zenitale in gradi
S = ora siderale in ore
D = declinazione in gradi
R = ascensione retta in ore
L = latitudine in gradi
una stella è visibile se:
cos L cos D cos H => -sen L sen D
Trovate le stelle visibili è ora pos¬
sibile mettere in scala il tracciato in
modo che il meridiano sia al centro
dello schermo con sei ore di A.R. da
ciascun lato (linea 880). Infine la de¬
clinazione della stella è messa in
scala in modo che l’equatore celeste
divida lo schermo con 45 gradi di de¬
clinazione sopra e sotto (linea 890).
Per l'orizzonte settentrionale la si¬
tuazione è un poco più complessa:
un tracciamento di coordinate polari
fa in modo che le stelle abbiano l’ef¬
fetto di girare in cerchio attorno alla
stella polare. Anche in questo caso
viene fatto, a linea 940, il controllo
della visibilità (mediante lo stesso al¬
goritmo di angolo zenitale). Poi, nel¬
le linee 950-1040, si usano l’ascen¬
sione retta e la declinazione per trac¬
ciare le posizioni delle stelle in un
tracciato di coordinate polari con la
stella polare al centro. In sostanza
l'A.R. della stella è convertita in ra¬
dianti e ruotata di 90 gradi (6 ore) in
senso antiorario a linea 970. Il risul¬
tato viene messo nella scala appro¬
priata e vengono calcolate le coordi¬
nate X,Y:
X = RI COS (XP)
Y = RI SEN (XP)
dove RI è il fattore scalare e XP è
l’angolo orario convertito.
Aggiungere stelle alla lista è faci¬
le. Il primo passo consiste nell’inse-
rire una linea DATA nel listato 1.
Introducetela usando per i dati questo
formato:
A.R., declinazione, magnitudine, no¬
me della stella
Usate il valore di A.R. per colloca¬
re al puntò giusto della lista la voce
che introducete. Se il valore del-
l’A.R. di cui disponete è in ore e mi¬
nuti convertite i minuti in un deci¬
male di due cifre. Analogamente con¬
vertite in un decimale di un'unica ci¬
fra la declinazione. Per fare un esem¬
pio la stella Aldib (Delta Draconis)
figura nelle carte stellari con A.R. di
19 ore, 13 minuti, DEC di 67 gradi,
37 primi e magnitudine di 3.2. Con
la conversione dei minuti la linea di
dati da introdurre sarebbe questa:
1685 DATA 19.22, 67.6, 3.2,
ALDIB
Il secondo passo consiste nel cam¬
biare il valore di NS alla linea 120
del listato 1 e nel far girare nuova¬
mente il programma per generare un
nuovo file della tavola. Da ultimo
assicuratevi che le dimensioni delle
matrici alla linea 130 del listato 2
siano alte a sufficienza perché questo
nuovo valore possa trovar posto. Se
è necessaria un modifica tutti i valo¬
ri della linea 130 del listato 2 devo¬
no essere cambiati in modo che sia¬
no identici.
La velocità dell'orologio, infine, è
controllata dalla variabile W. Au¬
mentate il. suo valore alla linea 90
del listato 2 per rallentare l’orologio,
e diminuitelo per accelerarlo.
f \
Questo programma è disponibile
su dischetto. L’elenco, i prezzi
e le modalità d’ordine di questo
e degli altri dischetti disponibili
sono riportati nella rubrica
Disk Service.
N... ... J
© By Nibbio e Applicando
37
One - liners
Per disegnare in alta risoluzione,
ecco un semplice one-liner inviato
da Marco Falda, Leini (TO). La mati¬
ta si controlla con i tasti Z - W - A -
S: rispettivamente su, giù, sinistra,
destra. Con i tasti L ed M si può in¬
crementare o decrementare la variabi¬
le C, che definisce il colore. Nella
parte bassa dello schermo viene indi¬
cato il colore (Hcolor) selezionato e
la posizione X,Y in cui verrà visua¬
lizzato il punto. Utilizzando il ciclo
FOR-NEXT Z, e decrementando Z
di 1 prima di chiudere il ciclo (con
NEXT Z), si è ottenuto un ciclo
chiuso e continuo, evitando di utiliz¬
zare l’istruzione GOTO, che avrebbe
rimandato il controllo a inizio riga
pulendo la pagina grafica ogni volta
a causa di HGR.
One-liner 113
1 HOME :C =3:X =100:Y =100: HGR
: FOR Z = 1 TO 2: GET A$:X =
X + (A$ = "S") * (X < 278) -
(A$ - M A") * (X > 0) :Y = Y +
(A$ = "W") * (Y < 159) - (A$
= "Z") * (Y > 0) :C = C + (A
$ = "M") * (C < 7) - (A$ = "
L")*(C > 0):HPLOT X,Y:HCOLOR=
C:VTAB 22: PRINT "HC="C: VTAB
22: HTAB 20: PRINT "X= ,, X" ":
HTAB 20: PRINT ,i Y= ,, Y M " : Z =
Z - 1: NEXT Z
Dato il Run a questo one-liner di
Augusto Beschin, Alte di Montec-
chio (VI), viene creato sul disco un
text file (BIP). Con l’istrazione E-
XECBIP si autoinstalla in memoria
una routine sonora e, a ogni tasto
premuto, si ottiene un bip di con¬
ferma.
One-liner 114
10 A$ = CHR$ (4): PRINT A$"OPEN
BIP":PRINT A$"WRITEBIP":PRINT
"CALL-151": PRINT "300:A9 11
85 38 A9 03 85 39 DO 03 20
89 FE 20 EA 03 60 48 A0 0A A
9 12 20 A8 FC AD 30 CO 88 DO
F5 68 4C 1B FD N 300G3D0G":
PRINT A$"EXECBIP"
Eccq un piacevole effetto, realizza¬
to da Nicola Mazzariello del Villag¬
gio Snia di Milano. Genera delle bar¬
re a scorrimento verticale.
One-liner 115
1 FOR X = 768 TO 798:READ N:POKE
X,N: NEXT : HGR : POKE 49234
,0: HCOLOR= 3: FOR Y = 0 TO
180 STEP 16: FOR X = Y TO Y +
7: HPLOT 0,X TO 279,X: NEXT
: NEXT : CALL 768: DATA 162,
32,142,10,3,142,15,3,185,0,0
,73,127,153,0,0,200,208,245,
238,10,3,238,15,3,202,208,23
6,76,0,3
Anche questo one-liner, che produ¬
ce un piacevole effetto di pulizia del¬
la pagina di testo, è di Nicola Mazza¬
riello.
One-liner 116
X = 1 TO 24: HTAB 1: VTAB X:
PRINT A$;: NEXT : FOR S = 1
TO 20: POKE 32,20 - S: POKE
33,2 * S: POKE 34,10 - INT
(S / 2): POKE 35,14 + INT (
S / 2): HOME : FOR W = 1 TO
50: NEXT : NEXT
Carlo Giannini di Bibbiena (AR)
ha realizzato un Text Writer su una
sola linea. Scrivete una frase e date
il RUN: la rivedrete sulla stampan¬
te. Può essere utile per completare,
con la data o altro, un documento fa¬
ticosamente compilato.
One-liner 117
1 PRINT CHR$ (4)"PR#1": GET T$
: PRINT T$; SPC( 0);: GOTO 1
Ecco un utile strumento per impa¬
rare le tabelline, ideato da Marco
Sperati di Nizza Monferrato (AT):
visualizza automaticamente, scriven¬
do i numeri da moltiplicare, il risul¬
tato lampeggiante nella tavola pita¬
gorica.
One-liner 118
1 HOME : POKE 34,20: FOR I = 1 TO
10: FOR E = 1 TO 10: HTAB E *
3:VTAB I * 2:PRINT I * E: NEXT
E: NEXT I: FOR Q = 0 TO 1:Q =
0: VTAB 22: INPUT H: INPUT G
: ON (G > 10 OR H > 10) GOTO
1: FLASH : HTAB H * 3: VTAB
G * 2: PRINT G * H: NORMAL :
GET G $ : HOME :HTAB H * 3:VTAB
G * 2: PRINT G * H: NEXT Q
Dello stesso autore, ecco un one-li¬
ner per scritte scorrevoli. Permette
di far scorrere sul monitor una scrit¬
ta memorizzata nella variabile A$.
One-liner 119
1 A$ = "QUESTA RIGA PUÒ' ESSERE
UNA SUBROUTINE DI UN VOSTRO
PROGRAMMA. PERMETTE DI VISUA
LIZZARE SCORREVOLMENTE LUNGH
I MESSAGGI OCCUPANDO UNA SOL
A RIGA": HOME :SPEED= 217: FOR
I = 1 TO LEN (A$) - 19: VTAB
22: HTAB 10: PRINT MID$ (A$
,1,20): NEXT I: SPEED= 255
L'one-liner di Enrico Bernardini,
Carrara S. Giorgio (PD) crea un fan¬
tastico disegno in alta risoluzione
sulla pagina grafica 1.
One-liner 120
1 HOME : VTAB 21: HGR :Z = 8:K =
10:T = 10: HCOLOR= 7: HPLOT
130, 80 :A = 3 * RND (1):B =
3 * RND (1): FOR H = 0 TO 6
.28 STEP 3.14 / 180 :R = Z *
SIN (H * T):X = 130 + INT
(K * R * - COS (A * H)):Y =
80 + INT {K * R * SIN (B *
H)):HPLOT TO X,Y:NEXT H: FOR
J = 1 TO 2500: NEXT J: GOTO 1
Dato il RUN apparentemente non
succede nulla. Ma provate a battere
il tasto DELETE o TAB, oppure le
frecce su e giù...
In realtà, grazie al prpgrammino di
Sergio Abeni, Castellare di Pescia
(PT), avete a disposizione una nuo¬
va tastiera, particolarmente utile se a-
vete un Ile e desiderate digitare i vo¬
stri programmi o copiare quelli al¬
trui.
Come è noto, sul Ile è un conti¬
nuo ricorso al tasto di SHIFT o un
continuo inserimento e disinserimen¬
to del tasto di SHIFT LOCK. Con
questo one liner si potrà tenere sem¬
pre inserito il tasto SHIFT LOCK,
dal momento che i simboli più usati
(-,;:$) = " si ottengono premen¬
do rispettivamente FRECCIA
GIU’, -, >, A , !, [, FRECCIA SU,
DELETE, TAB.
Questo one-liner non funziona sot¬
to ProDos ed è utile solo per il II c.
38
a
One-liner 121
1 FOR A = 768 TO 820:READ B:POKE
A,B: NEXT : DATA 169,11,133,
56,169,3,133,57,76,234,3,32,
27,253,160,12,217,28,3,240,4
, 13 6, 20 8, 24 8, 96,185, 4 0, 3, 96,
255.137.138.139.223.222.161,
219.190.173.187.172.189.162,
168,169,173,187,186,164,172,
223,222,190: CALL 768
Questo one-liner dimostra che non
è difficile dare l’idea tridimensionale
di una sfera con i suoi meridiani. E’
stato creato da Manlio Castronovo
di Brindisi.
One-liner 122
. 1 HOME : HGR2 : HCOLOR= 3: FOR
A = 20 TO 170 STEP 7:B = 1.1
5 * ( SQR (6400 - (A - 95) *
2)): FOR C = 0 TO 6.4 STEP .
2:X = B * COS (C) + 139:Y =
A - B * SIN (C) / 5: HPLOT
X,Y:NEXT :HPLOT TO X,Y:NEXT
Date il Run a questo one-liner di
Luigi Favia, Brindisi, e vedrete sul
monitor, in alta risoluzione, il mera¬
viglioso rosone di un'antica catte¬
drale.
One-liner 123
1 HOME : HGR : HCOLOR- 3: DIM A
(21),B(21): FOR P = 2 TO 21:
A (P) = 78 * SIN (.314 * P) +
140 :B(P) - 78 * COS (.314 *
P) + 80: NEXT : FOR P = 2 TO
21: FOR Q = P TO 21: HPLOT A
(P) , B (P ) TO A(Q),B(Q): NEXT
: NEXT
Utilizzando questo one liner di Fe¬
lice Rosso, Ragusa, è possibile tra¬
sformare un file in alta risoluzione
da positivo in negativo e viceversa.
Funziona anche con i file a colori.
Date il RUN al programma, richia¬
mate un disegno sulla prima pagina
grafica e battete CALL 24576.
Non funziona con la seconda pagi¬
na grafica.
One-liner 124
1 FOR K = 24576 TO 24611: READ
A: POKE K,A: DATA 169,32,141
,15,96,141,18,96,162,0,169,2
55,56,253,0,64,157,0,64,232,
208,244,238,15,96,238,18,96,
173,15,96,201,64,144,231,96:
NEXT
Ideato da Davide Massa di Savama
(RA), questo one-liner permette di e-
seguire somme e sottrazioni fra cifre
sessagesimali. Dopo il RUN chiede
di inserire le ore (H), i minuti (M) e
i secondi; poi il segno dell'operazio¬
ne (+/-) e quindi la cifra sessagesi¬
male da addizionare o sottrarre alla
prima.
One-liner 125
20 INPUT "H,M,S ";A,B, C: INPUT
"+/-?: ";0$: INPUT H H,M,S " ;
D,E,F:X = D * 3600 + E * 60 +
F:S = A * 3600 + B * 60 + C +
(0$ = " + ") * X - (0$ = "-") *
X:H = INT (S / 3600) :S = S -
H * 3 600:M = INT (S / 60) :S
= S - M * 60: PRINT "RIS.="
;H;" H ";M;" MIN S;" SEC":
PRINT"ANCORA? "; :GET Z$:PRINT
: IF Z$ = "S" THEN 20
La prima serie di cento
programmi One-liners (Applicando
N. 16) è disponibile su dischetto.
I prezzi e le modalità d’ordine
di questo, come degli altri
dischetti, sono riportati nella
rubrica Disk Service.
> /
Applicando a portata di mano
E' disponibile il raccoglitore di Applicando e gli indici su
dischetto degli anni 1983/84/85. Ogni raccoglitore
consente di archiviare le annate 1983 e 1984 insieme
oppure i numeri del 1985. Ordina subito i tuoi
raccoglitori: riceverai in omaggio un numero arretrato di
Applicando a tua scelta (valore L. 7.000) per ogni
raccoglitore ordinato ( n.b. i numeri 1 e 2 sono esauriti).
Sì, voglio avere Applicando sempre
a portata di mano. Inviatemi:
□ N...raccoglitori per
Applicando a L. 18.000 cadauno
In omaggio inviatemi l'arretrato/i
N.(1 e 2 esauriti)
□ Disco indici
□ per Apple II a L.5.000
□ per Macintosh a L. 10.000
(utilizzabile con MacWrite)
Vi invio L.a mezzo
□ assegno non trasferibile
allegato intestato a Editronica srl
□ versamento su ccp N.19740208
Editronica srl Corso Monforte 39
20122 Milano di cui allego ricevuta
Nome.
Cognome.
Via.
Cap.Prov.
Città.
Compilare .^ritagliare e inviare in busta chiusta allegando il pagamento a Editronica srl - Corso Monforte 39 - 20122 Milano
SUPER
PER II, //e, Ile
MACINTOSH
Il Basic e gli Apple II in pratica. Questo volume
accompagna gradualmente l’utente, al quale
non è richiesta alcuna conoscenza matematica
o informatica di base, dai primi approcci alla
tastiera fino alla completa padronanza del com¬
puter e della programmazione. È il lettore a
decidere se passare al successivo capitolo o
ritornare ad approfondire quanto gli è stato
appena spiegato. 310 pagine, 28.000 lire.
Il Multiplan per il Macintosh. Oltre la pura
semplice descrizione del funzionamento del fo¬
glio elettronico, introduce l’utente all’uso di
uno strumento di lavoro integrato che permette
di svolgere una quantità insospettabile di attivi¬
tà diverse in ogni area del lavoro d’ufficio o nella
professione: modifiche, tagli, spostamenti, ri¬
montaggi, dal bilancio di una società al campio¬
nato di calcio. 210 pagine, 26.000 lire.
Il manuale ProDOS. Il ProDOS costituisce un
significativo passo avanti rispetto al diffuso ma
ormai un po’ invecchiato DOS 3.3. Questo ma¬
nuale introduce ai numerosi e complessi aspetti
del ProDOS, dedicando particolare attenzione
alla struttura ad albero dei directory, alla com¬
patibilità con il DOS 3.3 e con il SOS e alla
programmazione in Basic Applesoft sotto Pro¬
DOS. 200 pagine, 25.000 lire.
Il Basic Microsoft. Il libro comprende un’anali¬
tica descrizione dell’uso di tutte le istruzioni,
funzioni, comandi e operatori, organizzata in un
vero e proprio corso di programmazione: loop,
array, gestione di stringhe, formattazione del¬
l’output, subroutine, debugging, uso dei me¬
nu, gestione dei file ad accesso casuale e se¬
quenziale, file di chiavi e puntatori. Ricchissima
documentazione esemplificativa. 432 pagine,
38.000 lire.
Genitori nell’era del computer.ln che modo è
possibile servirsi del computer nell’educazione
dei figli? In che misura il computer cambierà la
scuola? Qual è il software più adatto a stimolare
la creatività dei bambini? A queste domande - e
ad altre ancora - Pter Scharf dà delle risposte
basate sulla sua esperienza in famiglia (quattro
figli maniaci del computer) e nelle scuole statu¬
nitensi. 256 pagine, lire 19.000.
COMPUTER
GRAPHICS
CORSO DI
PROGRAMMAZIONE
STEVEN HARRINGTON
McGrawHì»
Computer Graphics. L’approccio seguito da
Harrington rende accessibile il libro a un pubbli¬
co con basi matematiche elementari e concate¬
nando la spiegazione dei vari algoritmi in modo
da portare il lettore anche alla realizzazione di
un package grafico ben costruito e basato su
concetti di standardizzazione delle funzioni.
520 pagine, 39.000 lire.
PASCAL
GUIDA PER
PROGRAMMATORI
OLIVIER LECARME
JEAN-LOUIS NEBUT
McGraw-Hill
Pascal. Guida per programmatori. Il libro può
essere usato per un corso intermedio da coloro
che scrivono programmi più avanzati, ma il suo
fine principale è quello di servire come libro dì
testo per l’autoapprendimento, poiché esso of¬
fre una trattazione esauriente del Pascal e una
descrizione fedele e precisa del linguaggio stan¬
dardizzato dall’ISO e dagli isituti nazionali di
standardizzazione. 292 pagine, 29.000 lire.
Programmazione umanizzata in Applesoft.
Riassume tutte le tecniche che vengono comu¬
nemente impiegate dagli esperti di software per
rendere più amichevoli i programmi. Vengono
infatti affrontati tutti gli aspetti di queste tecni¬
che: sia quelli intèrni al software, come routine
a prova d’errore o di formattazione dell’input,
sia quelli esterni, come la documentazione e i
manuali operativi. Il libro include un quiz mne¬
monico e un’agenda telefonica. 208 pagine,
21.000 lire.
Grafica e animazione con gli Apple //. Questo
libro vuole guidare gli appassionati nella com¬
plessa materia della grafica e dell’animazione,
prendendoli per mano dai primi rudimenti attra¬
verso numerosi esempi e applicazioni, fino a
una completa comprensione dei principi e dei
metodi della computer graphics. Gli esempi
sono applicati allafamigla degli Apple//: Il Plus,
//e e //c. 160 pagine, 17.000 lire.
Il Basic Applesoft. In 16 capitoli, un metodo
graduale che non presuppone alcuna cono¬
scenza di base. Tra gli argomenti trattati: uso
interattivo del computer, sintassi dei comandi
DOS, formattazione dell’input e dell’output, ar-
ray, selezione e ordinamento dei dati, grafica a
bassa e ad alta risoluzione, trattamento dei file
su disco, debugging, riepilogo delle istruzioni,
comandi e funzioni Applesoft. 232 pagine,
19.000 lire.
Guida al Macintosh. Fin dal primo approccio, il
Mac è molto amichevole, e offre sul video una
scelta tra varie opzioni, rappresentate da icone.
In questo modo l’utente può scegliere una o più
di queste funzioni potendo tranquillamente
ignorare ciò che avviene all'interno della mac¬
china e superando così la naturale diffidenza
che a volte i computer ispirano. Lo strumento
fondamentale per questo rapporto amichevole
con il Mac è il mouse. 224 pagine, 22.000 lire.
Il manuale MC68000. La famiglia di questo
microprocessore trova un utilizzo vastissimo in
workstation, sistemi CAD/CAM, sistemi di
commutazione telematici, robot e controllori di
processo, oltre che nei microcomputer di re¬
cente realizzazione, come Macintosh, Sinclair
QL, HP 9816. Questo manuale è una preziosa
fonte di informazione per gli appassionati che
vogliono cimentarsi con la programmazione in
Assembler. 168 pagine, 16.000 lire.
Come usare MacWrite e MacPaint. Molto più
di quanto facciano i manuali operativi allegati ai
programmi, questo volume svela ogni trucco
dei due applicativi per Macintosh, spiegando ed
esemplificando particolari tecniche di disegno e
di gestione dei testi, sempre nell’ottica di un
uso integrato dei due programmi. Il libro è
riccamente illustrato con immagini prodotte se¬
guendo fedelmente i consigli del testo, così da
offrire ai lettori il risultato grafico di ogni se¬
quenza di operazioni. 192 pagine, 20.000 lire.
Compilare e spedire il tagliando qui sotto a Applicando , Editronica Srl., Corso Monforte 39, 20122 Milano
Sì! Inviatemi subito, senza aggravio di spese
postali, il o i libri contrassegnati con una
crocetta.
□ Il Basic e gli Apple II in pratica. 28.000 lire.
□ Il manuale ProDOS. 25.000 lire.
□ Programmazione umanizzata in Applesoft.
21.000 lire.
□ Grafica e animazione con gli Apple //. 17.000 lire.
□ Il Basic Applesoft. 19.000 lire.
□ Il Multiplan per il Macintosh. 26.000 lire.
□ Il Basic Microsoft. 38.000 lire.
□ Guida al Macintosh. 22.000 lire.
□ Il manuale MC68000. 16.000 lire.
□ Come usare MacWrite e MacPaint. 20.000 lire.
□ Genitori nell’era del computer. 19.000 lire.
□ Computer Graphics. 39.000 lire.
□ Pascal. Guida per programmatori. 29.000 lire.
Cognome.Nome.
Via.Cap.
Città.Prov .
Scelgo la seguente formula di pagamento:
□ allego assegno di L.non trasferibile intestato a Editronica srl.
□ allego ricevuta versamento di L.sul cc/p n. 19740208 intestato a
Editronica srl - Corso Monforte, 39 - 20122 Milano
□ pago fin d’ora l’importo di L..con la mia carta
di credito BankAmericard N ...
scadenza.autorizzando la Banca
d’America e d’Italia ad addebitarne l’importo sul mio conto BankAmericard.
Data
Firma
Il gioco ha regole facili ed è appassionante.
Ma il punteggio! Complesso da conteggiare,
lungo da annotare, facile da contestare.
Per giocare senza impicci, guadagnando
magari anche il tempo per una partita in più..,
Tutti i conti
del tuo gin
Giocare a Gin è molto semplice,
soprattutto se si sa giocare a Scala
quaranta, che presenta con il Gin
molte somiglianze. Innanzitutto si
gioca in 4, due giocatori nella squa¬
dra A e due giocatori nella squadra
B. Ogni giocatore della squadra A
gioca contro un giocatore della squa¬
dra B. Occorrono però non due maz¬
zi di 50 carte (i mazzi per la verità
sono quelli da 52, ma vanno tolti i
Jolly) bensì tre, perché il terzo serve
da Vela o Mazzo guida.
Una volta stabilita la squadra che
per prima dà le carte, questa mescola
e serve, mentre l'altra squadra mesco¬
la la Vela. La Vela si pone in mezzo
al tavolo con le carte coperte, tranne
l'ultima carta che va posta, girata, in
cima al mazzo; a ogni mano la squa¬
dra che perde deve "girare la Vela”,
cioè prendere l’ultima carta del maz¬
zo e portarla in cima, sempre scoper¬
ta: poi vedremo perché.
Chi serve deve dare al suo avversa¬
rio 11 carte coperte, servirsene 10 e
porre le carte avanzate sul tavolo,
carte che verranno prese una alla vol¬
ta a ogni scarto, a meno che non si
preferisca prendere la carta scartata
dall'avversario. Il servito quindi scar¬
ta per primo, mentre il suo avversa¬
rio ha la possibilità di pescare dal
mazzo o di prendere la carta scartata
dall'avversario. Il gioco finisce quan¬
do uno dei due può posare sul tavo¬
lo tutte le sue carte contemporanea¬
mente.
Per fare ciò le carte devono essere
(almeno tre di fila) in scala di un uni¬
co colore e/o a gruppi di tre o quat¬
tro carte uguali (tre o quattro Regi¬
ne, tre o quattro 7, e così via). Per e-
sempio, 6,7,8 di picche; tre Assi;
Regina, Re, Asso e 2 di cuori (la
scala può infatti continuare dopo il
Re). Con questo fanno dieci carte;
l'undicesima si scarta: si dice allora
che il giocatore ha fatto Gin. Qualo¬
ra il giocatore riesca a mettere sul ta¬
volo tutte le sue carte senza scartar¬
ne nemmeno una si dice invece che
ha fatto Big.
Il suo avversario pagherà tutte le
carte in mano, tranne i tris (o quat¬
tro carte uguali), le scale e le carte
"di appoggio", cioè le carte che pos-
Figura 1. Per prima cosa ii programma chiede il
nome dei quattro giocatori, divisi in due squadre.
Figura 2. Al termine di ogni mano, basta indicare il
numero relativo al punteggio fatto.
sono essere aggiunte a quelle che
Tavversario ha messo sul tavolo (il
quarto Re, se il vincitore ha messo
sul tavolo tre Re, un appoggio a u-
na scala, e così via). Le carte conta¬
no il loro punto (un 5 cinque punti,
un 7 sette punti), le figure dieci pun¬
ti e gli Assi quindici punti.
Oltre al Big e al Gin c’è però un'al¬
tra possibilità, ed ecco il perché del¬
l’esistenza della Vela o Mazzo guida.
E’ infatti possibile chiudere in battu¬
ta, o battere, e cioè mettere sul tavo¬
lo per esempio un tris e cinque carte
in scala e scartare le ultime tre carte,
purché la somma di due di queste tre
carte sia inferiore alla Vela, cioè alla
carta scoperta in cima al Mazzo gui¬
da. Per esempio, se sulla Vela c’è un
5, le tre carte scartate possono esse¬
re solo due 2 (totale quattro, quindi
un punteggio inferiore a quello indi¬
cato dalla Vela) e una terza carta qua¬
lunque. Ma attenzione, perché il vo¬
stro avversario potrebbe andare Un¬
der, cioè rimanere con le carte che
non può mettere sul tavolo o appog¬
giare alle vostre che, sommate, dan¬
no un punteggio uguale o inferiore
al vostro quattro.
Per esempio, se dovesse rimanere
con un 3, ecco che andrebbe Under;
in questo caso, voi non guadagnere¬
ste né perdereste alcun punto, men¬
tre al vostro avversario spetterebbero
50 punti. Se invece il vostro avver¬
sario non va Under, il punteggio si
calcola sottraendo alle carte che gli
rimangono in mano, tolte cioè quel¬
le che può mettere sul tavolo perché
tris o in scala, o quelle che può ap¬
poggiare alle vostre, i punti della vo¬
stra battuta: nell’esempio appena ac¬
cennato, quattro punti.
La battuta però non può essere ef¬
fettuata se la carta scoperta della Ve¬
la è un asso: in questo caso si dice
che è Gin obbligatorio, e quindi vin¬
ce solo chi chiude regolarmente con
una sola carta di scarto o con nes¬
suna.
Altro particolare importante: tutte
le carte che a mano a mano vengono
scartate possono essere guardate du¬
rante il gioco, perché è importante e-
vitare di scartare carte che l’avversa¬
rio può utilizzare per comporre i pro¬
pri tris e le proprie scale.
Fin qui, tutto semplice; la faccen¬
da si complica maledettamente quan¬
do si tratta di segnare i punti e poi
di calcolare il punteggio finale. Ecco
il perché di questo programma dispo¬
nibile sia in versione per Apple II
che per Macintosh, di cui però non
pubblichiamo i listati perché occu-
MANO
Squadra <A>
GIORGIO STEFANO
a
n. a
FRANCESCA HM
1 .BIG
BIG
1
2.GIN
GIN
GIN
3. Battuta
Battuta
Battuta
4. Under
Under
Under
5. Paga
Pa9a
Pa9a
Fiaura 3. Se si sceglie l'opzione 5, "paga punti",
allora il computer chiede s 'quanti punti?".
Figura 4. Dato l'ok all'operazione descritta in figura
3, il computer presenta il punteggio aggiornato.
n. a
Squadra <B>
Squadra <A> Squadra <B>
GIORGIO STEFANO FRANCESCA MARCO
MANO
Squadra <A>
GIORGIO STEFANO I
i n. a
Squadra <B>
FRANCESCA MARCO
Vuoi calcolar* il punt* 99 io <S/N>
Figura 5. Proseguendo con le mani, il computer
aggiorna il punteggio e blocca le colonne chiuse.
Figura 6. Ecco come si presenta il tabellone dei
punteggi al termine di una partita.
43
r é Fila Edìt
S«<ìi< h Run
Windows
1
SI 1 ■ ■ - G 1 N n.i,--- - ------i- . —
iato-arca*
Mano N. 1
Squadra A
Squadra B
|Francesca |
|Mario
|Arturo
| |Stefanc|
O big
O big
O big
Punti? 34
O GIN
® GIN
O gin
(i) Battuta
O Battuta
O Battuta
O Under
O Under
® Under
O Pago
O Paga
O Paga
L!\J
( RNNULLR ]
E
Figura 7. Come nella versione per Apple II, anche in
quella per Mac è facile dare le indicazioni al computer.
é Pila E di t Soorfit Run Windows
^SINj
Mano N.6
Squadre A Squadra B
[Francesca | |Mario [ [Arturo | |Stefanc|
1
2
3
i
2
3
pljj
H
mi
|S|1J
320
135
illtl
Q
B
A
10
5
VUOI GIOCARE UN’ALTRA MANO?
Figura 8. Il Mac calcola automaticamente il punteggio,
proponendolo aggiornato a ogni mano successiva.
perebbero troppo spazio; ma i pro¬
grammi su dischetto sono disponibi¬
li attraverso il Disk Service o gratis
per chi ha sottoscritto un abbona¬
mento ad Applicando con disco pro¬
grammi (vedi pagine 30 e 31).
Il punteggio
Il punteggio deve essere segnato
su un foglio come evidenziato nella
figura 4. Facciamo un esempio
pratico: i due giocatori della squadra
A fanno entrambi Gin contro i gioca¬
tori della squadra B. I giocatori della
squadra B pagano rispettivamente 5
e 15 punti. I due Gin valgono 50 +
50 punti, cioè 100 punti, i 20 pun¬
ti degli avversari vengono raddoppia¬
ti, valgono cioè 40 punti. Si segna
quindi la squadra A nella parte supe¬
riore della prima colonna, con 140
punti, mentre nella parte inferiore,
sempre della prima colonna, si se¬
gnano 9 Cocotte o Cocche. Le Co¬
cotte sono infatti punti aggiuntivi
che vengono attribuiti solo alla squa¬
dra che vince la mano e sono, rispet¬
tivamente, 10 per ogni Big, 5 per o-
gni Gin e 1 per la Battuta.
Ma se entrambi i giocatori di una
squadra vincono la mano, come nel
caso che stiamo ipotizzando, si som¬
mano 5 + 5 Cocotte, ma si sottrae 1
punto, quindi si segnano solo 9 Co¬
cotte, perché le Cocotte devono esse¬
re sempre dispari.
Complicato? Be', il peggio deve
ancora venire. Ipotizziamo a questo
punto una seconda mano in cui sia
un giocatore della squadra A sia uno
della squadra B facciano Big; natural¬
mente gli altri due giocatori pagano.
Poniamo che quello della squadra A
paghi 2, mentre quello della squadra
B paga 10. Ecco il risultato: 100 - 4
= 96; 100 - 20 = 80; 96 - 80 = 16.
Segna quindi 16 punti nella seconda
colonna la squadra A. Questi 16 pun¬
ti vanno sommati anche al risultato
precedentemente segnato nella prima
colonna. Mentre le Cocotte vengono
attribuite solo alla squadra A, la
squadra che si segna, e sono 9 per
via del Big. Anche queste, poi, devo¬
no essere sommate a quelle già se¬
gnate nella prima colonna.
Terza mano. Squadra A: un Gin e
una Battuta; Squadra B: Under e 5
punti. Totale: 50 del Gin + 0 della
Battuta = 50; 50 dellUnder - 10 =
40. 50 - 40 = 10 per la squadra A.
Questo punteggio va segnato in ter¬
za colonna, ma sommato anche sia
nella prima sia nella seconda colon¬
na. Le Cocotte sono 5 per la squadra
A per via del Gin.
La partita continua finché non si
raggiungono 450 punti in ogni co¬
lonna. Naturalmente quando una co¬
lonna è chiusa non bisogna più som¬
mare al suo interno i punti della ma¬
no successiva, come pure non biso¬
gna sommarli nella corrispondente
colonna avversaria, anche se in que-
st’ultima i punti sono inferiori al
450. Ma attenzione ai Blitz! Perché
se una squadra non si segna in una
delle tre colonne, si dice che in quel¬
la colonna è stata blizzata, e allora
nel conteggio finale paga altre pena¬
lità.
Il conteggio finale
Se il calcolo fin qui vi è sembrato
complesso, pensate solo che sarà il
vostro Apple II o il vostro Macinto¬
sh a eseguirlo, liberandovi dall’obbli-
go di assumere un ragioniere allo
scopo. Bisogna infatti ancora fare il
conteggio dei punti squadra per squa¬
dra, sommando i totali delle tre co¬
lonne. Poi va aggiunto un premio di
450 punti per ogni colonna chiusa,
al quale va aggiunto un premio corri¬
spondente al dóppio del punteggio
ottenuto in ogni colonna la cui co¬
lonna corrispondente dell'avversario
sia stata blizzata. Infine si conteggia¬
no le Cocotte e si raddoppiano quel¬
le eventualmente appartenenti alla o
alle colonne, le cui corrispondenti
colonne della squadra avversaria sia¬
no state blizzate, e si moltiplica per
25. Infine si fa la differenza tra i due
risultati.
Il programma
Con AppleGin (versione per il II)
o MacGin (versione per Macintosh),
basta specificare per ogni giocatore
se ha fatto Big, Gin, Battuta, Under
o se paga punti. In quest'ultimo ca¬
so il computer chiede quanti punti.
Dopodiché il computer visualizza,
mano per mano, il risultato, segnala
quando una colonna è chiusa e, alla
fine di una partita, quando cioè tutte
e tre le colonne sono chiuse, calcola
il punteggio finale in pochi secondi.
Con il tempo risparmiato, in una
serata si può tranquillamente fare un
Gin in più, quella rivincita che si
vorrebbe tanto fare, ma che...
Francesca Marzotto
( \
Questo programma è disponibile
su dischetto. L’elenco, i prezzi
e le modalità d’ordine di questo
e degli altri dischetti disponibili
sono riportati nella rubrica
Disk Service.
> M
44
«Nutricale
E' un integrato dedicato a chi esce dai freddi invernali
con qualche chilo di troppo. Un database di 900 cibi, in¬
cluso il pranzo tipico americano accolto anche da noi
con il nome di fast food, provvede ad analizzare calorie,
sodio, colesterolo, grassi, proteine e vitamine dei piatti
inseriti.
I valori, poi, vengono rappresentati in veste grafica co¬
sì come i risultati dell’analisi che suggeriscono cosa e
quanto sarebbe meglio evitare o le proteine che mancano
per un giusto equilibrio alimentare. Nutricale costa 80
dollari ed è prodotto dalla Camde Corporation, 46 Prince
Street, Rochester, New York 14607. Telefono (716)
473-5330.
LIST ALI
Select Foods to List...
m |
ch*rri« ,sour ,rt d ,pit
Change Food Ordering...
9C0
ch*rry pi*, whol*
chicken &. noodl*s (ho
[^Display graph
Display RDA analysis
r\
chtcktn a la king
chick*n br*ast, fr i*d
chr- -— —1
^Display energy sources
| Display history data...
1
%H |
é File Edit
Change-lnfo
•olls, brovn & s*rv*
fluid whol* milk (3.338 fai)
Dotato salad
Energy Sources
Quantity
Cherry Pie, 1/7 Slice
flmt: 11.00 I Slices
_ mcns
OCup OPint OQuart ( Cancel ]
OTbsp O Tsp OGram
OOunce O Pound OCC
0K
0 20* 40* 60* 80* 100*
EMERGV Ca
F'ROTEIN Gm
FflT Gm
CflRBOH. Gm
IROM rig
UIT. C Mg
S001UM Mg
CHOLES. Mg
Nutrients,
•Ready Set-Go versione 2.0
Continuano la campagna e il successo di Apple Edit,
l'editoria in casa con Macintosh e LaserWriter. A testi¬
monianza di ciò, la Manhattan Graphics ha presentato la
versione 2.0 di Ready Set-Go, un programma per impa¬
ginare direttamente sul video del Macintosh. Ready Set-
Go è stato il primo esempio di Desktop Publishing con
il Mac, e come spesso accade ha pagato il dazio dei novi¬
zi. Il meccanismo di lavoro risultava piuttosto complica¬
to; in particolare era possibile studiare un solo layout di
una pagina e il trasferimento di testo e figure poteva av¬
venire soltanto attraverso il clipboard; oppure si poteva
battere il testo direttamente sul monitor di Ready Set-
Go.
La versione 2.0 permette invece diversi layout e
preleva direttamente i testi da un file di Microsoft Word
o di MacWrite. Per le figure bisogna invece passare attra¬
verso l’archivio appunti. Altri vantaggi della nuova ver¬
sione sono la possibilità di lavorare con un trentaduesi¬
mo (32 pagine in gergo tipografico) per ogni file e l’op¬
zione Add a page che permette durante la lavorazione di
aggiungere una eventuale pagina al numero stabilito nei
parametri iniziali. Questo per non trovarsi senza più spa¬
zio con altro testo da inserire e dover aprire così un nuo¬
vo file.
Ulteriori informazioni possono essere richieste alla
Paolini, via Ostiense 48, Roma, telefono 06/5755006.
•Orbiter
Sull’onda del successo dei simulatori di volo la Spe-
ctrum Holobyte, famosa software house statunitense, ha
sviluppato un programma di simulazione dello SpàCe
Shuttle.
Orbiter, così è stato battezzato il nuovo gioco, chiede
all’inzio di fissare i parametri della missione a cui è de¬
stinato il viaggio nelle orbite spaziali. E’ possibile fissa¬
re obiettivi come la costruzione di stazioni spaziali, o la
riparazione di satelliti danneggiati o solo un semplice
viaggio di esplorazione nello spazio. I comandi sono tut-
t’altro che semplici: un infinito numero di controlli e in-
r é File Game Uietus Special Communicetian Mission
45
Un mouse.
La sua Mouscotte.
Niente più segni sulla scrivania.
E una superficie liscia, ideale, appositamente
studiata per assicurare la massima scorrevolezza
ed efficienza al mouse. Sotto, uno strato di gomma:
la Mouscotte non si sposta. Chiedi Mouscotte ai
migliori Computer Shop Apple. Oppure richiedilo
direttamente a Editronica usando il tagliando di
questa pagina.
Per ricevere Mouscotte basta compilare e spedire subito questo
tagliando a Editronica Sri, Corso Monforte 39, 20122 Milano.
r -,
| □ Speditemi subito Mouscotte. Accludo assegno non trasferibile
intestato a Editronica Srl di lire 29.500 comprensive di Iva e
| spese di spedizione al mio indirizzo.
□ Speditemi subito Mouscotte. Accludo ricevuta di versamento di
| lire 29.500 sul conto corrente postale n. 19740208 intestato a
Editronica Srl.
□ Speditemi subito N.Mouscotte. Accludo ricevuta di
versamento / assegno di lire.
I
I
I
I
□ Desidero fattura.
Il mio Codice fiscale/Partita Iva è:.
Cognome . Nome
dicatori riempie lo schermo del Mac,
e, subito sopra il pannello di control¬
lo, rimmensità dello spazio attraver¬
sa la cabina di comando. Orbiter co¬
sta 146 mila lire, iva 9% eslusa, e
può essere richiesto alla Bits &
Bytes, via S.Francesco d'Assisi 8,
'Milano. Telefono 02/8376207.
•I know it's
here somewhere
Prodotto dalla Hayden software, la
software house produttrice della serie
Da Vinci e della scacchiera Sargon
III, questo programma dal nome in¬
terminabile (letteralmente: so che è
qui da qualche parte) risponde alle pu¬
re esigenze di archiviazione dati.
Semplice per impostazione, econo¬
mico nel prezzo ma limitato rispetto
ad altri data base in commercio, è de¬
dicato a piccole utenze che necessita¬
no di uno strumento veloce e affida¬
bile. Il discc* programma comprende
31 esempi di file format che posso¬
no essere comunque variati in base
alle esigenze dell’utente. Le ricerche
possono essere effettuate in chiavi
multiple ed è possibile fare riferi¬
mento fino a cinque file contempora¬
neamente. In Italia I know it’s where
somewhere è distribuito nella versio¬
ne originale dalla Bits & Bytes, via
San Francesco d’Assisi 8, Milano,
tei. 02/ 8376207. Il prezzo di listino
è di 180 mila lire, iva 9% esclusa.
•Calculator
construction kit
Ai novizi del Macintosh vedere
spuntare fuori dalla melina la calcola¬
trice sembra una magia. Poi però ci
si rende conto che le operazioni pos¬
sibili sono ben poche, i quattro se¬
gni matematici e nulla più. Funzio¬
ni che comunemente si trovano nel¬
le più limitate macchine per calcolo
comepercentualeo radice quadrata di¬
ventano operazioni ardue e complica¬
te da effettuare in punta di mouse. Il
programma Calculator construction
kit permette però di creare su misura
la propria calcolatrice, con le funzio¬
ni che si desiderano: ovviamente au¬
mentando le operazioni richieste alla
macchina per calcolo aumenta di pa¬
ri passo la memoria occupata. Calcu¬
lator construction kit costa 276 mila
lire, iva 9% esclusa, e in Italia è di¬
stribuito da Software Shop, corso
XXII Marzo 33, Milano, telefono
02/7387444.
Indirizzo.
i
i
CaD
Città
Prnv
Tutto sta nello scagliare atomi nella scatola nera indovinando la posizione
degli atomi nascosti: gli effetti di riflessione, reiezione e assorbimento
presentano nuove sfide ogni volta che si affronta questo gioco
che è, a tutti gli effetti, il gioco dell'ignoto.
Sfida atomica
nella scatola nera
Scatola nera è un gioco di deduzio¬
ne. Si gioca con un riquadro di 8x8,
il cui interno non è visibile. Il com¬
puter dispone tanti atomi nel riqua¬
dro (la scatola) quanti noi abbiamo
deciso (da uno a otto) e il giocatore
deve sparare atomi nella scatola da
varie posizioni fino a scoprire la po¬
sizione di ciascun atomo nascosto.
La difficoltà del gioco è naturalmen¬
te maggiore in relazione al numero
degli atomi nascosti.
Listato 1. Scatola nera
DOS 3.3
in ppm _ _ _
ìu KLra — -
20 REM SCATOLA NERA
30 REM DI GARY KNOX
40 REM COPYRIGHT (C) 1986
Apple Ile
Apple Ile
50 REM BY APPLICANDO &
60 REM MICROSPARC, INC
70 REM -
80 GOSUB 1720
90 DEF FN R(Q) = INT (8 * RND (3)) +1
100 HOME : VTAB 12
110 INPUT "INDICA IL NUMERO DI ATOMI (FINO A 8) ";N
120 IF N < = 0 OR N > 8 THEN VTAB 4: PRINT "RIPROVA": CALL - 9
58: VTAB 12: GOTO 110
130 DI = INT ((N + 3) / 4)
140 FOR K = 1 TO 8 : A(K) = 0:B(K) = 0:: NEXT
150 A(l) = FN R (3) : B (1 ) = FN R(3)
160 FOR K = 2 TO N
170 CX = FN R(3):CY = FN R(3)
180 FOR L = 1 TO K - 1
190 IF A(L) = CX AND B(L) = CY THEN 170
200 NEXT L
210 A (K) = CX : B (K) = CY
220 NEXT K
230 HOME
240 REM
250 REM **DISEGNA LA SCATOLA NERA**
260 GOSUB 1610
270 VTAB 2: HTAB 15: PRINT "LATO 1"
280 VTAB 9: PRINT "LATO 4"
290 VTAB 9: HTAB 29: PRINT "LATO 2"
300 VTAB 17: HTAB 15: PRINT "LATO 3"
310 VTAB 18: CALL - 958: HTAB 1
320 HTAB 1: VTAB 19: PRINT "PUNTI = "PT
330 REM
340 REM **.INDICA LA POSIZIONE DI SPARO**
350 VTAB 21: INPUT "INDICA IL NUMERO DEL LATO ";S
360 IF S > 4 OR S < 0 THEN 310
370 PT = PT - INT (20 / DI)
380 VTAB 21: CALL - 958: INPUT "INDICA LA POSIZIONE SU QUEL LATO
" ; P
390 IF P > 8 OR P < 0 THEN 380
400 INVERSE
410 GOSUB 980: GOSUB 1090: GOSUB 1500
420 PRINT P
430 FF = 0
44 0 TX = X + XD :TY = Y + YD (Continua)
All'inizio il programma dà la pos¬
sibilità di scegliere se cominciare su¬
bito a giocare o avere una descrizio¬
ne completa del gioco; chiede poi il
numero degli atomi da nascondere
nella scatola.
Dopo che la scatola è stata disegna¬
ta sullo schermo e vi sono stati na¬
scosti gli atomi, ci viene chiesto da
quale lato e da quale posizione lungo
quel lato vogliamo sparare nella sca¬
tola. Il computer mostrerà solo la
posizione di partenza dalla quale l'a¬
tomo lanciato entra nella scatola, e
la posizione finale dalla quale l'ato¬
mo emerge dalla scatola. Sulla base
dei risultati si può cercare di indovi¬
nare dove sia situato un atomo na¬
scosto, sparare un altro atomo nella
scatola o abbandonare. Se si decide
di abbandonare, il computer mostre¬
rà dove erano nascosti gli atomi.
47
Come funziona
il programma
Il programma utilizza solo la vi¬
sualizzazione del testo e non fa al¬
cun ricorso alla grafica. Tutto il mo¬
vimento e tutto il disegno sullo
schermo sono fatti in modo testo.
Questo fatto può risultare molto uti¬
le a chi volesse osservare e appren¬
dere qualche interessante tecnica di
programmazione.
Il programma è suddiviso nelle
procedure seguenti:
i 90-320 Nasconde gli atomi e stampa
il riquadro sullo schermo.
350-420 Riceve e stampa la posizio¬
ne di sparo, gli incrementi di moto e
le coordinate deH’atomo sparato.
^ 440480 Vede se l’atomo lanciato
sia stato assorbito.
500-560 Riceve le istruzioni usate
per controllare la riflessione, l’assor¬
bimento eccetera.
590-690 Controlla le riflessioni, le
reiezioni e gli assorbimenti.
710-820 Stampa l’atomo che emer¬
ge, il totale di punti e le scelte.
,>830-920 Azzera i lati d'inizio e di u-
scita per fatomo a causa di un cam¬
biamento di direzione.
\ 980-1060 Calcola le posizioni di
^stampa nel riquadro.
^1090-1170 Riceve gli incrementi di
moto per l’atomo lanciato,
yl200-1230 Stampa le posizioni del¬
l’atomo nascosto per il giocatore che
abbandona.
^250-1330 Introduce la congettura e
vede se il giocatore aveva già fatto
l'ipotesi della stessa locazione.
1340-1470 Vede se la congettura era
esatta e stampa i risultati.
1500-1580 Riceve le coordinate d'ini¬
zio del tiro.
1610-1640 Stampa i numeri del ri¬
quadro.
1670-1690 Cambia la direzione quan¬
do un atomo viene riflesso.
1720-2450 Dà le istruzioni e le re¬
gole del gioco.
2460-2470 La routine di dimostrazio¬
ne del tiro.
2480 Moto rettilineo per la dimostra¬
zione di tiro.
2490-2540 Moto riflesso per la di¬
mostrazione di tiro.
Vediamo ora quali sono le princi¬
pali variabili utilizzate e qual è la lo¬
ro funzione nel programma:
A( ) Coordinate X degli atomi na¬
scosti.
B( ) Coordinate Y degli atomi na¬
scosti.
450 IF FF = 1 THEN 490
460 FOR K = 1 TO N
470 IF A( K) = TX AND B (K) = TY THEN ZX$ = "ASSORBITO": GOTO 750
480 NEXT K
490 RESTORE
500 FOR K = 1 TO S
510 FOR L = 1 TO 4
520 READ CX(L), CY(L)
530 DATA -1,0,1,0,-1,1,1,1, 0,-1, 0,1, -1,-1,-1,1
540 DATA -1,0,1,0,1,-1, -1,-1,0,-1,0,1, 1, 1, 1,-1
550 NEXT L
560 NEXT K
570 IF FF = 1 THEN 630
580 FF = 1
590 FOR K = 1 TO N
600 IF A(K) = TX + CX(1) AND B(K) = TY + CY(1) THEN ZX$ = "RIFLES
SO INDIETRO": GOTO 740
610 IF A (K) = TX -f CX (2) AND B ( K) = TY + CY(2) THEN ZX$ = "RIFLES
SO INDIETRO": GOTO 740
620 NEXT K
630 TT = 0: FOR K = 1 TO N
640 IF A ( K) = TX + XD AND B(K) = TY + YD THEN ZX$ = "ASSORBITO":
GOTO 750
650 IF A(K) = TX + CX(3) AND B(K) = TY + CY(3) THEN ZX$ = "RIFLES
SO":TT - TT + 3
660 IF A( K) = TX + CX(4) AND B(K) = TY + CY(4) THEN ZX$ = "RIFLES
SO":TT = TT + 1
670 NEXT K
675 IF TT = 1 THEN 880
676 IF TT = 3 THEN 830
677 IF TT THEN 930 ,
680 X = TX :Y = TY
690 IF X = 0 OR X = 9 OR Y = 0 OR Y = 9 THEN 710
700 GOTO 440
710 S = (S + 2) - INT (*(S + 2) / 4) * 4
720 IF S = 0 THEN S = 4
730 IF ZX$ = "" THEN ZX$ = "PASSATO ATTRAVERSO"
740 FLASH : GOSUB 980: PRINT P
750 HTAB 15: VTAB 23: INVERSE : PRINT ZX$:ZX$ = "" : FOR ZZ = 1 TO
2000: NEXT ZZ: NORMAL
760 HTAB 1: VTAB 19: CALL - 958: PRINT "PUNTI = "PT
770 VTAB 22: PRINT " - "
780 VTAB 21: CALL - 868: INPUT "F=FINIRE S=SPARARE G=SUPPORRE (S
CEGLI ) " ; PQ$
790 IF PQ$ = "S" THEN GOSUB 1610: GOTO 310
800 IF PQ$ = "F" THEN GOSUB 1610: GOTO 1200
810 IF PQ$ = "G" THEN 1250
820 GOTO 780
830 TT = 3: GOSUB 1670
840 GOSUB 1090
850 IF ABS (XD) = 1 THEN P = TY: GOTO 680
860 P = TX
870 GOTO 680
880 TT = 1: GOSUB 1670
890 GOSUB 1090
900 IF ABS (XD) = 1 THEN P = TY: GOTO 680
910 P = TX
920 GOTO 680
930 TT = 2: GOSUB 1670
940 GOSUB 1090
950 GOTO 680
960 REM
970 REM ** CALCOLA LA POSIZIONE DELLA SCATOLA**
980 ON S GOTO 990,1010,1030,1050
990 VTAB 5: HTAB (2 * P + 8)
1000 GOTO 1060
1010 HTAB 26: VTAB (P + 5)
1020 GOTO 1060
1030 VTAB 14: HTAB (2 * P + 8)
1040 GOTO 1060
1050 VTAB (P + 5) : HTAB 8
1060 RETURN
1070 REM
1080 REM * * INCREMENTI DI MOTO**
1090 ON S GOTO 1100,1120,1140,1160
1100 XD = 0 :YD = 1
1110 GOTO 1170
1120 XD = - 1 :YD = 0
1130 GOTO 1170
1140 XD = 0 :YD = - 1
1150 GOTO 1170
1160 XD = 1 :YD = 0
1170 RETURN
1180 REM
1190 REM **STAMPA TUTTI GLI ATOMI**
1200 FOR K = 1 TO N
1210 HTAB (2 * A (K) + 8): VTAB (B(K) + 5): PRINT "*"
1220 NEXT K
1230 VTAB 20: HTAB 1: CALL - 958: VTAB 21: PRINT "ECCO LA POSIZI
ONE DEGLI ATOMI!": FOR ZZ = 1 TO 2000: NEXT : GOTO 1440
1240 REM
48
1250
1260
1270
1280
1290
1300
1310
1320
1330
1340
1350
1360
1370
1380
1390
1400
1410
1420
1430
1440
1450
1460
1470
1480
1490
1500
1510
1520
1530
1540
1550
1560
1570
1580
1590
1600
1610
1620
1630
1640
1650
1660
1670
1680
1690
1700
1710
1720
1730
1740
1750
1760
1770
1780
1790
1800
1810
1820
1830
1840
1850
1860
1870
1880
1890
1900
1910
1920
1930
1940
1950
1960
1970
REM * ^CONGETTURA E CONTROLLO* *
VTAB 20: CALL - 958
NORMAL : VTAB 21
INPUT "INDICA LA RIGA ";R
PRINT
INPUT "INDICA LA COLONNA ";C
FOR W9 = 1 TO CO
IF C = C(W9) AND R = D(W9) THEN 1410
NEXT W9
FOR K = 1 TO N
IF A(K) = C AND B(K) = R THEN INVERSE : HTAB 22: VTAB 22: P
RINT "ESATTO": FOR EE = 1 TO 3000: NEXT : CO = CO + 1 :PT - PT
+ INT (500 * DI): GOTO 1370
GOTO 1390
HTAB (2 * A(K) + 8): VTAB (B(K) + 5): NORMAL : PRINT "*"
GOSUB 1610: HTAB 1: VTAB 20:
1 TO
- 958: GOSUB 1610:PT = PT - 100 * DI:
- 958: VTAB 21: PRINT "LE HAI INDOVIN
= "PT:
HTAB 1:
S O N
VTAB 22
?" ;A$: IF
LEFT$ (A$,1)
C(CO) = C:D (CO) = R: NORMAL
ALL - 958: GOTO 1420
NEXT K
INVERSE : HTAB 22: VTAB 22: PRINT "SBAGLIATO": FOR ZZ
3000: NEXT : NORMAL
HTAB 1: VTAB 20: CALL
GOTO 760
IF CO < > N THEN 760
VTAB 21: HTAB 1: CALL
ATE TUTTE ! !"
VTAB 19: PRINT "PUNTI
PRINT : INPUT "GIOCHI ANCORA?
= "S" THEN CLEAR : GOTO 90
FOR ZZ = 1 TO 1000: NEXT : HOME :
GOTO 310
REM
REM **COORDINATE DI TIRO**
ON S GOTO 1510/1530,1550,1570
X - P:Y = 0
GOTO 1580
X = 9 : Y =
GOTO 1580
X = P : Y =
GOTO 1580
X = 0 : Y = P
RETURN
REM
REM * * STAMPA NUMERI RIQUADRO**
HTAB 10: VTAB 5: FOR X = 1 TO 8 : PRINT X"
: VTAB 6
FOR X = 1 TO 8: HTAB 8: PRINT X;: HTAB 26: PRINT X: NEXT X:
VTAB 14: HTAB 10
FOR X = 1 TO 8: PRINT X" ";: NEXT X
RETURN
REM
REM **CAMBIA DIREZIONE**
S = (S + TT) - INT ( (S + TT)
9
NEXT X: PRINT
/ 4)
IF S = 0 THEN
RETURN
REM
REM **ISTRUZIONI DI GIOCO**
HOME
VTAB 10: HTAB 14: PRINT "SCATOLA NERA"
VTAB 12: HTAB 19: PRINT "DI"
VTAB 14: HTAB 15: PRINT "GARY KNOX": VTAB 20: PRINT "(C) 198
6 BY APPLICANDO & MICROSPARC,INC."
VTAB 24: HTAB 5: INPUT "PREMI RETURN PER CONTINUARE..";PP$
HOME : VTAB 12: INPUT "ISTRUZIONI S-SI* N=NO ";PP$
IF LEFT$ (PP$,1) = "N" THEN 2440
SPEED= 200: HOME : VTAB 5
PRINT " IL COMPUTER METTERÀ' GLI ATOMI IN": PRINT : HTAB 3:
PRINT "UNA SCATOLA NERA, IN MODO CASUALE."
PRINT " DEVI INDOVINARE DOVE SONO!"
PRINT " DEVI SPARARE ATOMI NELLA SCATOLA E"
HTAB 2
IL COMPUTER MOSTRERÀ* DOVE"
HTAB 16
VANNO A FINIRE."
PRINT
PRINT
PRINT
PRINT
PRINT
PRINT
GOSUB 2460
HOME : VTAB 5: HTAB 5: PRINT "QUANDO SCAGLI UN ATOMO NELLA "
: CALL - 922: PRINT "SCATOLA NERA, SARA*_"
CALL - 922: HTAB 15: PRINT "ASSORBITO": CALL - 922: HTAB 1
5: PRINT "RIFLESSO": CALL - 922: HTAB 12: PRINT "O RESPINTO
GOSUB 2460
HOME : PRINT "L'ATOMO E* ASSORBITO SE SPARI": CALL - 922: P
RINT "DIRETTAMENTE A UN ATOMO NELLA SCATOLA."
VTAB 5: GOSUB 1610: HTAB 14: VTAB 9: PRINT "*": INVERSE : HT
AB 14: VTAB 14: PRINT "3"
GOSUB 2470
QQ = 10: GOSUB 2480
FOR K - 1 TO 1000: NEXT
GOSUB 2460
HOME : PRINT "L'ATOMO ATTRAVERSERA' LA": PRINT "SCATOLA SE N
ON INCONTRA UN ATOMO."
(Continua)
C Colonna della supposta posizione
deH'atomo nascosto.
CO Numero delle congetture esatte.
CX Coordinata X temporanea dell’a-
tomo nascosto.
CY Coordinata Y temporanea dell’a-
tomo nascosto.
CX( ) Cambiamento in X (compren¬
de la direzione).
CY( ) Cambiamento in Y (compren¬
de la direzione).
DI Fattore di difficoltà per il calcolo
dei punti.
FF Avvertimento per lo spostamen¬
to del primo atomo lanciato.
N Numero degli atomi nascosti.
P La posizione di stampa per un ato¬
mo su un lato del riquadro.
PP Spazio di partenza per l’atomo
lanciato nella dimostrazione.
PT Punti della partita.
QQ Ultimo spazio al quale l'atomo
lanciato si sposta nella dimostra¬
zione.
R Numero di riga supposto per la
posizione delfatomo nascosto.
RR Passi di aumento o diminuzione
per il moto dell'atomo nella dimo¬
strazione.
S Lato dal quale il giocatore lancia
l'atomo.
TT Fattore di calcolo per il lato
quando l'atomo lanciato cambia dire¬
zione.
TX Coordinata X temporanea dell'a¬
tomo lanciato.
TY Coordinata Y temporanea dell'a¬
tomo lanciato.
X Coordinata X delfatomo lanciato.
Y Coordinata Y dell’atomo lanciato.
XD Direzione X e distanza per lo
spostamento dell’atomo lanciato.
YD Direzione Y e distanza per lo
spostamento dell’atomo lanciato.
ZX$ Descrizione dei risultati quando
l’atomo è lanciato nella scatola.
Caratteristiche speciali
del programma
La linea 130 gestisce i due livelli
di gioco: dà un fattore di difficoltà 1
quando il giocatore vuole nascondere
da uno a quattro atomi nella scatola
nera, un fattore di difficoltà 2 quando
sono nascosti nella scatola da cinque
a otto atomi. Il fattore è usato nelle
formule che si trovano nelle linee
370, 1350 e 1410 al fine di calcolare
i punti guadagnati o perduti dal gio¬
catore.
Le linee 490-560 impiegano un’in¬
teressante tecnica per rendere possibi¬
le tener traccia delle direzioni che il
49
1980
1990
2000
2010
2020
2030
2040
2050
2060
2070
2080
2090
2100
2110
2120
2130
2140
2150
2160
2170
2180
2190
2200
2210
2220
2230
2240
2250
2260
2270
2280
2290
2300
2310
2320
2330
2340
2350
2360
2370
2380
2390
2400
2410
2420
2430
2440
2450
2460
2470
2480
2490
2500
2510
2520
2530
2540
VTAB 5: GOSUB 1610: HTAB 18: VTAB 9: PRINT INVERSE : HT
AB 14: VTAB 14: PRINT n 3"
GOSUB 2470
QQ = 6: GOSUB 2480
VTAB 5: HTAB 14: FLASH : PRINT "3": NORMAL
FOR K = 1 TO 1000: NEXT
GOSUB 2460
HOME : PRINT "L'ATOMO CHE SCAGLI E' RIFLESSO": PRINT "A SINI
STRA QUANDO SI AVVICINA A UN": PRINT "ATOMO IN DIAGONALE ALL
A SUA DESTRA."
VTAB 5: GOSUB 1610: HTAB 16: VTAB 9: PRINT INVERSE : HT
AB 14: VTAB 14: PRINT "3"
GOSUB 2470
QQ = 10: GOSUB 2480
QQ = 9:RR = - 1 :PP - 13: GOSUB 2490
FOR K = 1 TO 1000: NEXT : NORMAL : GOSUB 2460
HOME : PRINT "L'ATOMO CHE SCAGLI E* RIFLESSO": PRINT "A DEST
RA QUANDO SI AVVICINA A UN": PRINT "ATOMO IN DIAGONALE ALLA
SUA SINISTRA."
VTAB 5: GOSUB 1610: HTAB 12: VTAB 9: PRINT INVERSE : HT
AB 14: VTAB 14: PRINT "3"
GOSUB 2470
QQ = 10: GOSUB 2480
QQ = 25 :RR = 1 :PP = 15: GOSUB 2490
FOR K = 1 TO 1000: NEXT : NORMAL : GOSUB 2460
HOME : PRINT "L'ATOMO CHE SCAGLI E' RESPINTO": PRINT "SE E'
CONTRO UNA PARETE E": PRINT "SPARI NELLA SCATOLA ACCANTO A E
SSO."
VTAB 5: GOSUB 1610: HTAB 12: VTAB 13: PRINT INVERSE : H
TAB 14: VTAB 14: PRINT "3"
GOSUB 2470
HTAB 14: VTAB 13: PRINT " ": FOR J = 1 TO 500: NEXT : NORMAL
: HTAB 14: VTAB 13: PRINT " ": HTAB 14: VTAB 14: FLASH : PR
INT "3"
FOR K = 1 TO 1000: NEXT : NORMAL : GOSUB 2460
HOME : PRINT "CON PIU' DI UN ATOMO NELLA SCATOLA": PRINT "DI
VENTA INTERESSANTE."
VTAB 5: GOSUB 1610: HTAB 12: VTAB 9: PRINT HTAB 22: VTA
B 9: PRINT INVERSE : HTAB 14: VTAB 14: PRINT "3"
GOSUB 2470
QQ - 10: GOSUB 2480
QQ = 20 :RR = 1:PP = 15: GOSUB 2490
FOR K = 11 TO 13: INVERSE : HTAB 20: VTAB K: PRINT " ": FOR
J = 1 TO 500: NEXT : NORMAL : HTAB 20: VTAB K: PRINT " NE
XT K: FLASH : HTAB 20: VTAB 14: PRINT "6"
FOR K = 1 TO 1000: NEXT K: NORMAL : GOSUB 2460
HOME : VTAB 7
PRINT "QUANDO SEI PRONTO A INDOVINARE DOVE"
PRINT : PRINT "UN ATOMO E' NASCOSTO_"
PRINT : PRINT "TI SARA' CHIESTO IL NUMERO DI RIGA."
PRINT : PRINT "(ORIZZONTALE) SPEED= 100: INVERSE : FOR
ZZ = 1 TO 20: PRINT " NEXT : SPEED= 200: NORMAL : PRINT
GOSUB 2460
HOME : VTAB 7: PRINT "POI TI SARA' CHIESTO IL..."
PRINT : PRINT "NUMERO DI COLONNA DELL'ATOMO NASCOSTO."
PRINT : PRINT "(VERTICALE)";: INVERSE : SPEED= 100: FOR ZZ -
11 TO 20: HTAB 13: VTAB ZZ: PRINT " ": NEXT : SPEED= 200: N
ORMAL
GOSUB 2460
HOME : VTAB 7: PRINT "IL SISTEMA DI PUNTI E'..."
VTAB 10: HTAB 18-: PRINT "1-4 ATOMI"; SPC ( 3); "5-8 ATOMI"
HTAB 18: PRINT "-"; SPC ( 3);" -"
PRINT : PRINT "SPARA NELLA SCATOLA";: HTAB 21: PRINT - 20;
SPC( 9); - 10: PRINT : PRINT "NON HAI INDOVINATO";: HTAB 20:
PRINT - 100; SPC( 8); - 200
PRINT : PRINT "HAI INDOVINATO";: HTAB 21: PRINT 500; SPC( 8)
; 1000 : GOSUB 2460
HOME : VTAB 10: PRINT "VUOI LA RIPETIZIONE": PRINT : PRINT "
DELLA SPIEGAZIONE? S O N";: INPUT A$: IF LEFTS (A$,l) = "S
" THEN 1790
SPEED= 255: RETURN
REM
VTAB 24: HTAB 5: INPUT "PREMI RETURN PER CONTINUAREPP$:
RETURN
VTAB 20: PRINT "PREMI IL TASTO 'S' PER SPARARE...";: GET PP$
: RETURN
FOR K = 13 TO QQ STEP - 1: INVERSE : HTAB 14: VTAB K: PRINT
" ": FOR J = 1 TO 250: NEXT J: HTAB 14: VTAB K: NORMAL : PR
INT " ": NEXT K: RETURN
FOR K = PP TO QQ STEP RR: HTAB K: VTAB 10: INVERSE : PRINT "
": FOR J = 1 TO 250: NEXT J: NORMAL : HTAB K: VTAB 10: PRIN
T " ": NEXT K
IF QQ = 20 THEN 2540
IF RR = 1 THEN HTAB 26: GOTO
HTAB 8
VTAB 10: FLASH : PRINT "5"
RETURN
2530
Checksum dei listato 1
NOME FILE:
SCATOLA NERA
TIPO: A
LUNGHEZZA:
1491
CHECKSUM :
70
computer deve controllare per le ri¬
flessioni e gli assorbimenti.
Dato che queste direzioni dipendo¬
no dal lato dal quale l’atomo viene
lanciato, si adopera un loop per giun¬
gere ai numeri esatti nella lista dei
dati per tutti i lati possibili della sca¬
tola.
La linea 710 usa un algoritmo di
resto per calcolare il lato sul quale
ratomo emerge dalla scatola. Quan¬
do i lati sono uguali a 1, 2, 3 e 4 la
formula darà rispettivamente come ri¬
sultato 3, 0, 1 e 2. Si deve usare
un’istruzione IF per cambiare lo 0 in
4. Questo algoritmo elimina la ne¬
cessità di più istruzioni IF.
La linea 1670 impiega la stessa
tecnica per calcolare il lato dal quale
l'atomo emerge a un cambio di dire¬
zione. La variabile TT è posta ugua¬
le a 1 quando l’atomo viene riflesso
a sinistra! E' posta uguale a 3 quan¬
do l'atomo è riflesso a destra. Il va¬
lore di S e TT sono usati a linea
1670 per determinare il nuovo valo¬
re della variabile S.
I loop variabili che si trovano nel¬
la subroutine delle linee 2480 e
2490 accorciano parecchio la sezione
delle regole e delle istruzioni. Essi
sono utilizzati in ogni fase delle i-
struzioni.
I possibili
miglioramenti
Si potrebbe realizzare un'interes¬
sante variante della Scatola nera in¬
grandendo il riquadro e facendo ruota¬
re intorno a un nucleo centrale elet¬
troni nascosti. Il giocatore cerchereb¬
be di determinare la posizione di o-
gni nucleo sparando elettroni nella
scatola.
Gli elettroni scagliati potrebbero
essere riflessi dagli elettroni rotanti
intorno al nucleo oppure intrappola¬
ti dal nucleo.
Un'altra variante molto promet¬
tente del gioco potrebbe consistere
nell'aggiunta di una terza dimensio¬
ne alla Scatola nera. Così facendo si
creerebbe sicuramente qualche inte¬
ressante problema di programmazio¬
ne tridimensionale.
> \
Questo programma è disponibile
su dischetto. L’elenco, i prezzi
e le modalità d’ordine di questo
e degli altri dischetti disponibili
sono riportati nella rubrica
Disk Service.
N J
© By Nibble e Applicando
50
CRONOMETRO
L'orologio del sistema operativo può servire per creare nuovi accessori:
con i bottoni dell'MS diventa un cronometro capace di registrare
i tempi parziali al sessantesimo di secondo.
Ferma il tempo
quando vuoi
L’obiettivo è quello di poter calco¬
lare e mostrare su video tempo tota¬
le e tempi parziali con una precisio¬
ne al decimo di secondo, ed essere in
grado di tenere un promemoria degli
eventi a cui si riferiscono i tempi
parziali, con il cronometro sempre
in funzione, così da poter avere sot-
t'occhio le fasi di una corsa mentre
il programma si preoccupa del tem¬
po finale.
Cronometro, così si chiama il pro¬
gramma, consente di dare nomi ai
tempi parziali (per esempio "auto 32
fuori pista”) usando un edit field. So¬
no usati bottoni per controllare le
funzioni del cronometro (stop, via e
lap), e due finestre, una per il crono¬
metro e una per registrare i tempi
parziali.
La figura 1 mostra il tipico di¬
splay del programma, compresi i no¬
mi dei tempi parziali attribuiti dal
programma (Tempo N. x) e i nomi
definiti nell’edit field nella finestra
del cronometro.
Cronometro tiene correttamente i
tempi, anche quando il display sem¬
bra esitare a causa degli eventi in cor¬
so. La precisione dell’orologio è
mantenuta dal sistema operativo in
tempo reale: il programma infatti si
limita a effettuarne la lettura.
Alcune righe del listato sono
state spezzate per esigenze di
impagmazione:
quando incontrate il simbolo •
continuate a battere SENZA
PREMERE <return>
Listato 1. Cronometro
* Cronometro
1 By Bruce R. Land - Copyright ©1986
' By Applicando & MicroSPARC, Ine.
' Microsoft BASIC 2.0 e 2.1 (versione binaria)
CLEAR,7000,2000
DEFSNG a-z
'definizione delle costanti per usare il ciclo di clock del sist
ema operativo
'con precisione al sessantesimo di secondo
TickHigh=&Hl6A : TickMed2=&Hl6B : TickMedl=&H16C : TickLow
=&H16D
MultHigh=2 A 24 : MultMed2=2 A l 6 : MultMedl = 2 /v 8
Uso del programma
e caricamento
'inizializza gli interrupt associando i nomi delle subroutine ag •
li eventi
ON TIMER(1) GOSUB TimerEvent
ON MENU GOSUB MenuEv^nt
ON DIALOG GOSUB DialogEvent
Per utilizzare il programma sce¬
gliete il formato orario che preferite,
24 ore o 12 ore, dal menu TEMPI.
L’altra opzione in questo menu è FI-
TogliDialoghi 'Attende che non ci siano eventi in corso
' definizioni delle finestre e delle costanti per le finestre
TimeWindow=l : LapWindow=2
(Continua)
51
NE, per terminare l’esecuzione e tor¬
nare in MS Basic.
Fate partire il cronometro con il ta¬
sto VIA. Notate che il cronometro
parte effettivamente quando rilasciate
il bottone del mouse. La prima vol¬
ta che darete il run su un Macintosh
128K noterete che l’ingresso in azio¬
ne del drive causa una leggera inaccu¬
ratezza nei tempi; dopo che la parte
di codice MS Basic necessaria sarà
presente in memoria, però, il proble¬
ma non si porrà più. Il cronometro
partirà, e potrà essere fermato con il
bottone STOP. La ripartenza azzera
automaticamente il cronometro.
Mentre il cronometro è in fuzione,
basta fare un click nel bottone LAP
per registrare un tempo parziale nel¬
l'apposita finestra. Il nome attribui¬
to al tempo parziale dipende dalle
modifiche effettuate nell'edit field.
Se non avete indicato alcun nome
viene attribuita automaticamente u-
na nuova etichetta, se invece avete
dato l'ok nel campo Nome OK, o a-
vete premuto return, allora verrà usa¬
to il nome da voi scelto.
Il nome all’interno del campo può
essere modificato con i tradizionali
comandi stile MacWrite: taglia, in¬
colla, seleziona.
Potere usare sia la versione bina¬
ria, sia quella decimale dell'MS Ba¬
sic 2.0 o 2.1 per battere il program¬
ma del listato 1. Salvate il tutto
con il nome Cronometro.
Come funziona
il cronometro
La funzione TIMES dell'MS Basic
fornisce l'ora esatta, con precisione
al secondo. Ottenere un tempo par¬
ziale al decimo di secondo è difficile.
Tuttavia, nella parte bassa della
memoria, ci sono quattro locazioni
che sono incrementate ogni sessante¬
simo di secondo durante l’interrupt
per la ritraccia verticale dello scher¬
mo video (cioè quando il raggio di e-
lettroni che attiva i punti dello scher¬
mo passa velocemente dall'angolo in¬
feriore destro a quello in alto a sini¬
stra del monitor, ogni sessantesimo
di secondo).
Il sistema può accumulare 2 32 /60
secondi in esse a partire dall'accensio¬
ne del Macintosh, che corrispondono
a circa due anni.
Due anni sono un po' eccessivi
per un cronometro, così si è deciso
di considerare solo tre byte del conta¬
tore, per un massimo di 2 24 /60 se¬
condi, circa tre giorni.
Il programma è stato concepito
per usare le funzioni dell’MS Basic
in grado di rendere al meglio l'am¬
biente Macintosh. In particolare si è
fatto largo uso della abilità dell'MS
Basic di eseguire particolari subrouti¬
ne quando avvengono determinati e-
venti, esterni al programma. Il co¬
mando ON TIMER forza il salto a u-
na subroutine una volta per secondo,
ed è utilizzato per aggiornare l’orolo¬
gio. C'è un tipo di eventi che l'MS
Basic riconosce come dialoghi, in
grado anch'essi di forzare chiamate a
una subroutine. Questi eventi segna¬
lano al programma che l'utente ha
fatto qualcosa che richiede immedia¬
tamente attenzione (per esempio un
click con il mouse).
Il programma usa le funzioni di
dialogo per controllare quando è sta¬
to premuto un bottone e quando l'e-
dit field è stato completato.
L'abilità del Mac di riconoscere
questi eventi porta a uno stile di pro¬
grammazione detto appunto event
TipoDocumento=l
PushButton=l : Selezionato=2 : NonSelezionato=l : Inatt •
ivo=0
Box=l : Sinistra=l
WINDOW LapWindow,"Tempi parziali",(256,50)-(500,300),TipoDocumento
WINDOW TimeWindow,"Cronometro",(1,50)-(250,300),TipoDocumento
'Definizione dei controlli nella TimeWindow per le funzioni del
'cronometro. Il bottone LAP memorizza i tempi tra un click e l'a •
lt ro
'eseguito al suo interno. LapLabel permette di dare nomi ai temp •
i parziali
BUTTON 1, Selezionato, "STOP",(30,220)-(100,250),PushButton
BUTTON 2, Nonselezionato, "VIA", (105,220)-(150,250),PushButton
BUTTON 3, Nonselezionato, "Lap", (155,220)-(200,250),PushButton
BUTTON 4, Nonselezionato, "Nome OK", (130,150)-(200,165), PushBu •
tton
EDIT FIELD 1, "Tempo parziale", (25,150)-(125,165), Box, Sinistra
'definizione dei menu
attivo=l
MENU 6,0,attivo,"Tempi" 'Titolo del menu
MENU 6,1,attivo,"Fine"
MENU 6,2,attivo,"12 ore" 'Orologio a 12 ore
MENU 6,3,attivo,"24 ore"
TIMER ON 'attivazione degli interrupt
DIALOG ON
MENU ON
'Quando non si verifica alcun evento aggiorna l'orologio
'Nota: il cronometro funziona perfettamente anche se altri
'eventi ostacolano l'aggiornamento della finestra!
vero=-l : falso=0
InFunzione=falso 'Alla partenza il cronometro è disatt •
ivato
StartTicks=0
Bold=l : Geneva=l
LOCATE 2,5 : PRINT "Ora esatta:"
LOCATE 5,5 : PRINT "Cronometro:"
CALL TEXTFACE(Bold)
WHILE vero 'Nota: questo è un ciclo infinito
WHILE InFunzione 'Quando GO è stato premuto
GOSUB TickCount 'Lettura dell'orologio al 60/sec
FinestraAttuale=WINDOW(1) 'Salva lo stato della fi •
nestra
WINDOW OUTPUT TimeWindow
LOCATE 5,17 : CALL TEXTFACE(Bold)
PRINT USING "#####.#"; (ticks-StartTicks)/60
WINDOW OUTPUT FinestraAttuale
WEND
WEND
DialogEvent: 'E' stato premuto un bottone o un edit field
EventType=DIALOG(0)
IF EventType=l THEN ButtonEvent
IF EventType=6 THEN EditEvent
RETURN
ButtonEvent:
ButtonId=DIALOG(1)
ON Buttonld GOSUB StopButton,GoButton,LapButton,EditEvent
RETURN
StopButton:
InFunzione=falso 'Ferma il cronometro
52
driven. Il programma attende che l’u¬
tente faccia qualcosa, risponde alla
sua azione, poi attende che avvenga
qualcosa d'altro. Nel nostro caso,
quando non avviene nulla, il pro¬
gramma esegue l’aggiornamento del¬
l'orologio (se è attivato), altrimenti
attende in un ciclo WHILE-WEND
infinito.
Ogni secondo il comando ON TI¬
MER chiama la routine TimerEvent
per aggiornare l'ora del giorno sul vi¬
deo. Se premete un bottone o il ta¬
sto return nell'edit field dei tempi
parziali, il comando ON DIALOG
trasferisce immediatamente l'esecu¬
zione del programma alla subroutine
DialogEvent per scoprire quale even¬
to è accaduto, e per rispondere corret¬
tamente a esso.
Variabili e
comandi di controllo
Il comando DEFSGN fa sì che tut¬
te le variabili siano in singola preci¬
sione. Anche se questo è il formato
standard, definire all'inizio del pro-
RETURN
GoButton:
GOSUB TickCount
StartTicks=ticks
LapTicks=ticks
ContaLap=l
mpi parziali
InFunzione=vero
RETURN
'Legge l'orologio del sistema
'Inizializza il conteggio
'Inizializza i tempi parziali
'Inizializza i contatore dei te •
'Partenza del cronometro
LapButton:
IF InFunzione=falso THEN RETURN 'Se il cronometro è fermo •
niente parziali
GOSUB TickCount
TIMER STOP 'Disabilita interrupt per avere u •
na stampa corretta
FinestraAttuale=WINDOW(1)
WINDOW OUTPUT LapWindow
' Crea un nome per i tempi parziali
IF LapIdFlag=falso THEN LapId$="Tempo N." + STRS(ContaLap)
PRINT LapIdS;TAB(20)
PRINT USING "#####.#"; (ticks-LapTicks)/60
LapTicks=ticks
ContaLap=ContaLap+l : LapIdFlag=falso
WINDOW OUTPUT FinestraAttuale
TIMER ON
RETURN
EditEvent:
LapId$=EDIT$(1) 'Legge il nome del tempo parziale
LapIdFlag=vero
RETURN
TimerEvent: 'Questa routine è eseguita ogni secondo
FinestraAttuale=WINDOW(1)
WINDOW OUTPUT TimeWindow
ModTIME$=TIME$
'Controlla se il formato delle ore è a 12 o 24
IF (VAL(LEFT$(ModTIMES,2))>12) AND Flagl2ore THEN ModTIME$=S •
TR$(VAL(LEFT$(ModTIME$,2))-12)+RIGHTS(ModTIMES,6)
LOCATE 2/18 : CALL TEXTFACE (Bold)
PRINT ModTIMES
LOCATE 5,18 ' Posizione dei tempi parziali in caso di con •
flitto
WINDOW OUTPUT FinestraAttuale
RETURN
MenuEvent:
IF MENU(0) <> 6 THEN RETURN
IF MENU(1)=1 THEN MENU RESET:END
tina i menu
IF MENU(1)=2 THEN Flagl2ore=vero
IF MENU(1)=3 THEN Flagl2ore=falso
mato 12 ore
MENU
RETURN
TickCount: 'Calcola i secondi dal ciclo di clock del sistem •
a operativo
ticks=MultMed2*PEEK(TickMed2)+MultMedl*PEEK(TickMedl)+ PEEK(T •
ickLow)
RETURN «
SUB TogliDialoghi STATIC 'Attende che non ci siano eventi in
corso
WHILE DIALOG(0)<>0
WEND
'Scelta dal menù
'Ritorna al basic e ripris •
'Flag del formato 12 ore
'Cancella il flag del for •
gramma le variabili è una saggia pra¬
tica. Le variabili esadecimali nelle ri¬
ghe successive sono gli indirizzi di
memoria delle locazioni dei contato¬
ri al sessantesimo di secondo.Thick
High è il byte alto, incrementato u-
na volta ogni tre giorni, ThickLow
è l'indirizzo del byte basso, che vie¬
ne aggiornato sessanta volte al se¬
condo. I tre moltiplicatori che seguo¬
no sono usati per trasformare il nu¬
mero di sessantesimi di secondo in
un valore digeribile dall’MS Basic.
I successivi tre comandi (ON TI¬
MER GOSUB, ON MENU GOSUB
e ON DIALOG GOSUB) dicono al
Basic dove andare nel caso si verifi¬
chi un evento esterno al programma.
Questi comandi, in pratica, non ese¬
guono immediatamente le subrouti¬
ne. Finché tutte le finestre e i con¬
trolli non sono disegnati, il timer e
i dialoghi-eventi sono disattivati. I
comandi TIMER ON, DIALOG
ON e MENU ON metteranno effetti¬
vamente in azione i controlli.
Sono usate due finestre. L'ordine è
importante poiché è l'ultima finestra
usata a rimanere attiva, nel nostro ca¬
so la finestra dei tempi. Le definizio¬
ni dei bottoni si applicano alla fine¬
stra attiva, quella dei tempi, e pro¬
prio in essa appaiono durante l'esecu¬
zione del programma. Le dimensioni
di ciascun bottone sono state deter¬
minate per tentativi; il Basic si
preoccupa di centrare il nome del bot¬
tone all'interno del rispettivo rettan¬
golo.
L'ultimo controllo di Cronometro,
l'edit field, serve a dare nomi ai tem¬
pi parziali. Tutte le funzioni di edit,
basckspace, taglia e incolla sono
controllate dall'MS Basic. Se scrive¬
te programmi destinati ad altri uten¬
ti, ricordate che l’edit field è la mi¬
gliore funzione per dialoghi tramite
tastiera.
Come uscire
senza sbagliare
Un menu è stato creato apposita¬
mente per dimostrare come uscire
correttamente dal programma, e per
consentire di determinare il formato
di lavoro dell'orologio (12 o 24 ore).
I cicli concatenati WHILE-WEND
sono il corpo principale del program¬
ma. Notate che quello più esterno è
infinito. Il programma può abbando¬
narlo solo se interviene qualche even¬
to esterno che forza l’esecuzione di
un altro blocco del programma. Gli
53
NEW FOR APPLE - IBM
PRODOTTI PER ACQUISIZIONE DATI E MISURE
PER UTILIZZO SCIENTIFICO-INDUSTRIALE
SCHEDE PLUG-IN PER APPLE- IBM PC/XT E COMPATIBILI
Schede di I/O parallele fino a 24 porte programmabili,
Schede AD/DA converters 8 e 12 bits, da 2 a 16 canali con
possibilità di avere ingressi differenziali, a guadagno pro¬
grammabile. Tempi di conversione fino a 25 microsecon¬
di, uscite a reed relais, versioni con reai time clock e
batteria tampone. Disponiamo inoltre di prodotti uso la¬
boratorio quali:
Sistemi di sviluppo per 6502, prova integrati. Serie TTL-
MOS, programmatori di eproms, schede per encoder ot¬
tici, schede custom, ecc.
PRODOTTI MODULARI A RACK PER APPLE • IBM ■ HP • DEC
- COMMODORE ECC.
Versioni dedicate o universali in RS232 - IEEE 488.
40 Moduli tipo Eurocard disponibili a seconda delle ap¬
plicazioni; ogni rack può ospitare 9 moduli differenti ed
essere utilizzato su elaboratori diversi sostituendo sem¬
plicemente il controller.
APPLICAZIONI: Stepper motor controllers - Shaft eneo-
ders - Trasduttori di pressione - Strain gauges - Celle di
carico - Amplificatori di termocoppie - Profilometri - Stru¬
mentazione medica - Trasduttori di posizione ecc.
PRODOTTI PER ACQUISIZIONE IMMAGINI
DA TELECAMERA E/0 FONTI VIDEO
VERSIONI PER APPLE E COMPATIBILI
TELERASTER 256x192 Pixel con 64 toni di grigio o
4 in pseudo colore
IMAGE III 512x512 Pixel con 64 toni di grigio o
colore reale
VERSIONI PER PC/XT IBM E COMPATIBILI
DIGICON 256x256 Pixel 256 toni di grigio o
16 in pseudo colore
SERIE OCULUS 512x512 Pixel da 1 a 128 toni di grigio o
colore reale
VERSIONI VME BUS E A RACK
ADATTABILI A QUALUNQUE
ELABORATORE
APPLICAZIONI: Robotica - Riconoscimento immagini -
Termografia - Ecografia - Misure - Archivio Immagini • Ri¬
conoscimento caratteri - Teleconferenze - Grafica pitto¬
rica - Schede tecniche con immagini miscelate a testi,
calcolo aree, analisi da microscopio ecc.
ACCESSORI: Telecamere, supporti verticali, stampanti al¬
ta risoluzione, stampanti colore, stampanti laser, Polaroid
palette, plotters ecc.
LA PERTEL PUÒ FORNIRE HARDWARE E PACKAGES APPLI¬
CATIVI SU RICHIESTA SPECIFICA, PER INFORMAZIONI:
VIA ORMEA, 99 - CAP. 10126 TORINO
TEL. Oli - 655.865 - 651.574 (service)
TELEX 224243 PERTEL I
APPLE - IBM SONO MARCHI REGISTRATI
a
t file Edit Se<»(h Run UJindoms Tempi
Il display del programma. Sulla destra i nomi dei parziali stampati
dall'edit field.
eventi esterni possono essere i dialo¬
ghi, il timer, la selezione di un me¬
nu o lo STOP dato dall’utente (con
<Command> . ). Finché non accade
qualcosa il programma prosegue il
suo loop e aggiorna il cronometro
o, se non è attivato, attende.
Notate che questi eventi esterni
possono accadere in qualsiasi mo¬
mento e possono creare problemi di
programmazione non indifferenti e
difficili da individuare. Per esempio,
se un evento accade tra il comando
LOCATE e il successivo PRINT si
potrebbe ottenere una stampa del cro¬
nometro in posizione errata, perché
la routine TimerEvent modifica la
posizione di stampa. Questo è stato
corretto facendo in modo che Timer
Event ricrei la posizione di stampa
della routine principale.
Come lavora
routine per routine
DialogEvent è eseguita quando
è premuto un bottone, o il tasto re¬
turn, in un edit field. Queste due pos¬
sibilità trasferiscono il controllo a
ButtonEvent o a EditEvent.
La subroutine ButtonEvent de¬
termina quale bottone è stato premu¬
to e salta alla subroutine appropria¬
ta. StopButton ferma il cronome¬
tro dando a InFunzione il valore fal¬
so. GoButton inizializza il crono¬
metro, cancella i tempi parziali e fa
partire il cronometro stesso (InFun-
zione=vero), così si inizia la visua¬
lizzazione dei tempi, quindi ritorna
il controllo al loop principale.
LapButton controlla che il cro¬
nometro stia effettivamente funzio¬
nando, e nel caso legge l’etichetta
dei tempi parziali e la stampa nella
finestra corrispondente, accanto al
tempo trascorso dall’ultima volta
che si è premuto il bottone LAP. La
subroutine EditEvent viene chia¬
mata quando si preme il tasto Nome
OK o si preme return; immagazzina
il nome e posiziona un flag per in¬
formare LapButton che un nuovo no¬
me è stato battuto.
La subroutine TimerEvent è ese¬
guita una volta per secondo. Stam¬
pa il tempo attuale nel formato pre¬
scelto, 12 o 24 ore. La subroutine
MenuEvent controlla la selezione
del formato orario e il termine del
programma, poi passa all’MS Basic
le altre chiamate ai menu. La routi¬
ne TickCount assembla i byte del
contatore del sistema operativo in
un numero Basic ogni volta che il
programma (in pratica ogni secondo)
richiede il tempo esatto. La subrouti¬
ne TogliDialoghi elimina ogni e-
vento generato mentre si attende l'i¬
nizio del programma (un click acci¬
dentale sul mouse all'interno di un
bottone).
Questo programma è disponibile
su dischetto. L’elenco, i prezzi
e le modalità d’ordine di questo
e degli altri dischetti disponibili
sono riportati nella rubrica
Disk Service.
^_ __ J
© By Nibble e Applicando
54
Sei proprio sicuro
che il tuo computer
sia sempre al sicuro?
Incidenti di trasporto, furti anche dall'auto o dalla camera
d'albergo, cortocircuiti, bevande rovesciate sulla tastiera,
bambini o inesperti che ci mettono le mani... Ecco i pericoli
che correva il tuo computer prima della polizza Applicando.
Condizioni generali di assicura¬
zione:
1) Premessa : a) l'adesione alla
presente polizza è riservata ai pro¬
prietari di un Personal Computer il
cui valore stabilito come alla Condi¬
zione 6) sia superiore a L.
2.500.000 Iva compresa; b) l'adesio¬
ne alla presente polizza da parte dei
proprietari di personal computer av¬
verrà a mezzo invio di apposita car¬
tolina con il relativo importo di pre¬
mio; c) l'intestatario della cartolina
sarà considerato a tutti gli effetti co¬
me l’Assicurato; d) la garanzia sarà
operante dalle ore 24 del giorno di
spedizione della cartolina, risultante
dal timbro postale. La copertura a-
vrà durata un anno, sempre che la
data di inizio della garanzia sia com¬
presa nel periodo di validità della
convenzione.
Garanzie e condizioni
2) Sez. I - Danni materiali. Deri¬
vanti da: a) incendio, opera di spe¬
gnimento e salvataggio, fulmine, e-
splosione, scoppio, implosione; b) a-
cqua e liquidi in genere, inondazio¬
ne, alluvione, trombe, uragani, ge¬
lo, ghiaccio, neve, grandine, valan¬
ga, caduta massi e altri simili even¬
ti; c) superamento del muro del suo¬
no, caduta di aeromobili o cose da
essi trasportate; d) corto circuito,
variazione di corrente, sovratensio¬
ne arco voltaico, deficienze di isola¬
mento, effetti di elettricità statica,
induzione; e) imperizia, negligen¬
za, errata manovra, nonché azioni
dolose e colpose in genere; f) tra¬
sporti e smontaggi connessi con la¬
vori di pulizia o di manuten¬
zione; g) furto e rapina; h) terremo¬
to, maremoto o eruzioni vulcani¬
che; i) persone che prendono parte
a tumulti popolari, scioperi, som¬
mosse e che perpetrino individual¬
mente o in associazione atti di terro¬
rismo o sabotaggio verificatisi in
occasioni di serrate.
3) Sez. II - Responsabilità Civile
Terzi: L’assicurazione si intende i-
noltre prestata per la Responsabili¬
tà Civile derivante all'Assicurato
dalla proprietà e dall’uso personale
del computer assicurato, identifica¬
to nel certificato di assicurazione. I
massimali di garanzia si intendono
fissati in: L. 100.000.000 per sini¬
stro con il limite di L. 100.000.000
per ciascuna persona deceduta o
che abbia subito lesioni personali
L. 100.000.000 per danni a cose e/o
animali.
4) Esclusioni: La Società non è
obbligata per i danni dovuti a: - do¬
lo dell’Assicurato; - corrosione, de¬
perimento, logoramento che siano
conseguenza del normale uso o fun¬
zionamento o causati dagli effetti
graduali degli agenti atmosferici; -
per i quali deve rispondere il forni¬
tore, venditore o locatore degli enti
assicurati per legge o per contratto
o per inadeguata manutenzione; -
causati da difetti di materiale o di
costruzione che esistevano già all'at¬
to della stipulazione della polizza e
erano a conoscenza dell'Assicurato;-
causati direttamente o indirettamen¬
te da avvenimenti bellici, sommos¬
se militari, invasioni, adozione di
misure da parte di potenze straniere,
rivoluzione, ribellione, insurrezio¬
ne, assunzione ousurpazione di pote¬
re di carattere militare, sequestri; -
verificatisi in occasione di esplosio¬
ne, radiazione nuclerare o di conta¬
minazione radioattiva; - uso impro¬
prio del bene (mancato rispetto del¬
le norme di impiego dettate dal co¬
struttore); - danni estetici (quelli in¬
teressanti l’involucro esterno che
non sia conseguenza di un danno ri¬
sarcibile a termine della presente po¬
lizza); - guasti casualmente ricondu¬
cibili a interventi, a riparazioni e/o
modifiche effettuate da un centro
non autorizzato dalla casa costruttri¬
ce della macchina; - danni indiretti
in genere.
5) Operatività della garanzia: a)
la garanzia è operante solamente se
gli enti assicurati sono ubicati pres¬
so il domicilio dell’Assicurato o in
luoghi diversi da questi se in posses¬
so dell’Assicurato; b) la garanzia è
pure efficace se i beni si trovano sul¬
l'autovettura in uso all'Assicurato,
salvo i seguenti casi: - qualora l'au-
Sl! Desidero assicurare i miei/il mio computer, in¬
viatemi a stretto giro di posta il certificato emesso dal¬
la Ras. L'assicurazione avrà valore a decorrere dalle
ore 24 del giorno di spedizione della mia adesione.
Per la data fa fede il timbro postale.
COGNOME_:_
NOME.
INDIRIZZO.
CAP-
Città
-PROV.
Assicuro i/il seguente personal:
Marca e Modello
N. di matricola
Valore (Iva compresa)
Con le seguenti periferiche (stampanti, video, drive, hard-disk, ecc.):
Marca e Modello N. di matricola Valore (Iva compresa)
In caso di spazio insufficiente ricopiate su un foglio il tagliando indicando i prodotti che intendete assicurare.
Per un totale complessivo di Lire . su cui pa¬
go il premio calcolato in base alla tabella riportata qui sopra. Allego assegno non trasferibile di
Lire.intestato a Editronica srl, Corso Monforte 39, 20122 Milano.
tovettura venga lasciata incustodita
dalle ore 22 alle ore 6; - qualora
l'autovettura regolarmente chiusa a
chiave venga lasciata incustodita
dalle ore 6 alle ore 22 e gli enti assi¬
curati non opportunamente occulta¬
ti nel bagagliaio; c) limitatamente
ai danni di rottura la garanzia è effi¬
cace solamente nel caso questi sia¬
no dovuti a un incidente in cui ri¬
manga coinvolto anche il veicolo
in uso dell'Assicurato che trasporta¬
va i beni assicurati; d) per gli enti
per i quali non è stato stipulato il
contratto di manutenzione e/o assi¬
stenza con la casa costruttrice e/o
ditte di essa mandatarie qualora l'en¬
te richieda per norma del fornitore
detto contratto, la società non ri¬
sponde dei danni verificatisi in con¬
seguenza di guasto meccanico e/oe-
lettrico salvo che l'Assicurato pro¬
vi che tale guasto sia causato da e-
vento esterno agli enti assicurati o
da incendio originato da uno di que¬
sti enti.
6) Somma Assicurata: La somma
assicurata per ciascun ente deve cor¬
rispondere al costo di rimpiazzo, os¬
sia al prezzo di listino della casa co¬
struttrice ed escluso ogni sconto o
prezzo di favore di un ente nuovo,
eguale o equivalente per caratteristi¬
che, prestazioni e rendimento eco¬
nomico.
7) Premio: Per ogni singola appli¬
cazione è stabilito un premio forfet¬
tario omnicomprensivo così calco¬
lato:
Somma assicurata
Premio
da
2.500.000
a
3.000.000
50.000
da
3.000.000
a
5.000.000
65.000
da
5.000.000
a
7.000.000
80.000
da
7.000.000
a
10.000.000
100.000
da
10.000.000
a
15.000.000
120.000
da
15.000.000
a
20.000.000
150.000
8) Franchigia. Per ogni e qualsia¬
si danno che colpisca gli enti assicu¬
rati è stabilita una franchigia di: L.
50.000 per somma assicurata fino a
L. 5.000.000; L. 100.000 per som¬
ma assicurata superiore a L.
5.000.000. Per sinistri causati da e-
venti come ai punti g) ed h) delle ga¬
ranzie prestate, la Società liquiderà
i danni sotto deduzione di uno sco¬
perto pari al 20% della somma assi¬
curata, col minimo delle franchigie
sopra stabilite.
9) Rinvio alle norme di legge.
Per tutto quanto non è qui diversa-
mente regolato, valgono le norme
di legge.
e applicando vi mettono al sicuro
GESTIONE DOMESTICA
Come stanno la dispensa e il congelatore? Sempre ben forniti,
ma non troppo, senza vuoti e senza sprechi? Oppure qualche vizietto
di gestione si fa sentire? Per ottimizzare i vostri acquisti e scorte,
l'ideale è un database intelligente e molto, molto massaio.
Un genio al
supermark
Non c’è quartiere senza il suo bra¬
vo supermercato, sempre che non ce
ne siano due o più. E, in obbedienza
allo stesso processo, non c'è casa, o
quasi, senza congelatore. Cocicché
fare la spesa non significa più andare
tutte le sere dal droghiere e dal frutti¬
vendolo, ma, ogni due settimane, re¬
carsi con un bel bagagliaio da riem¬
pire al più vicino supermercato.
Gli acquisti dovrebbero essere così
ottimizzati. Dovrebbero. In realtà
succede anche più spesso di prima di
scoprire che in casa manca il burro,
o di trovare nel terzo scomparto un
surgelato ormai fuori scadenza.
Colpa di una gestione approssima¬
tiva, che le grandi quantità di viveri
non fanno che enfatizzare nelle sue
conseguenze negative.’ Con l'estate,
poi, i problemi si accentuano più
che mai: molti negozi chiudono e la
grande spesa al supermercato diviene
proprio indispensabile. E orribile sa¬
rebbe, in piena canicola, scoprirsi
senza più bibite in frigo...
Con questo comodo programma
potete tener nota di tutto quello che
dovete acquistare. Quando siete pron¬
ti per andare al negozio dovrete solo
stampare la lista della spesa: Super
Shopper, programma di utilità e
database per la gestione della
casa, memorizza, aggiorna,
ordina e stampa in modo
facile e rapido le liste
della spesa. Oltre
a trovare le spiega¬
zioni sull'uso di Super
Shopper scoprirete in
56
Vv.r
questo articolo l'evoluzione del pro¬
gramma dalla versione tartaruga del
DOS a quella lepre del ProDOS e al¬
cune preziose indicazioni per la con¬
versione dei vostri programmi DOS
3.3 in ProDOS.
In barba, naturalmente, ai potenzia¬
li trabocchetti.
Vedrete così qual è l'uso più accor¬
to della memoria del ProDOS, quali
variazioni vengono apportate ai prin¬
cipali comandi del Dos, quali norme
sono imposte nella nominazione dei
file; e poi i codici di errore, le riper¬
cussioni sull’Applesoft e, per conclu¬
dere con saggezza, i pericoli nei qua¬
li è meglio non incappare quando si
usa il ProDOS.
Come introdurre
categorie e prodotti
Quando eseguite per la prima vol¬
ta Super Shopper non ci sono sul di¬
schetto informazioni sulla lista della
spesa: Super Shopper vi offre l'op¬
zione di creare la vostra. Potete ave¬
re in lista fino a 40 categorie, e ogni
categoria può comprendere fino a 40
prodotti. In totale il programma può
dunque tener nota di 1.600 articoli di¬
versi: vettovaglie sufficienti per la
popolazione di una cittadina!
Quando create la vostra lista riflet¬
tete anzitutto sul modo in cui fate la
spesa, e organizzate in conformità le
vostre categorie.
Per esempio un criterio è quello
dei tipi di prodotto che vi occorrono:
potreste avere allora nomi di catego¬
ria come Verdura, Frutta, Pollame e
pesce, Cibi in scatola, Erbe e spe¬
zie, Pane, Latticini, Surgelati, Deter¬
sivi e così via.
Oppure potreste organizzare la li¬
sta in conformità con la disposizio¬
ne degli scaffali nel supermercato in
cui vi servite. Ogni categoria potreb¬
be rappresentare una corsia di scaffa¬
li, e gli articoli di quella categoria sa¬
rebbero i prodotti che si trovano in
quella corsia.
Introducete le categorie quando Su¬
per Shopper ve le chiede. Se cambia¬
te idea sulle categorie potrete aggiun¬
gerne in seguito altre, cambiare i
nomi o anche eliminare le categorie
che non vi vanno a genio.
Una volta introdotte le categorie
viene visualizzato il menù principa¬
le. Per mettere nelle categorie gli ar¬
ticoli selezionate l'opzione (W) (Scri¬
vi le liste); Super Shopper vi chiede¬
rà a quale categoria volete lavorare.
Tavola 1. Le funzioni del programma
Linee Funzione
70-310
320-450
460-620
630-760
770-860
870-980
990-1000
1050-1080
1090-1190
1200-1240
1250-1550
1560-1730
1740-1840
1850-2090
2100-2390
2400-2500
2510-2650
2660-2820
2830-2910
2920-3010
3020-3140
3150-3230
Allestimento e inzializzazione del programma
Menù principale
Menù di editing dei prodotti
Funzione di aggiornamento delle liste dopo le spese
Funzione di aggiunta di un prodotto
Funzione di eliminazione di un prodotto
Funzione di cambiamento del nome di un prodotto
Funzione di cambiamento dello stato di lista di un articolo
Ordinatore della lista dei prodotti
Funzione di ricerca della categoria seguente
Routine di stampa della lista
Varie subroutine brevi
Visualizzazione della lista dei prodotti
Routine scelta prodotto/freccia
Routine scelta categoria/freccia
Menù di editing delle categorie
Funzione di eliminazione delle categorie
Funzione di cambiamento del nome delle categorie
Funzione di aggiunta di categorie
Routine di allestimento iniziale utente
Uscita dal programma
Subroutine di I/O dischetto (solo versione DOS 3.3)
Viene visualizzata una lista dei no¬
mi di categoria che avete nel file,
con un indicatore accanto a uno dei
nomi. Per scegliere una categoria u-
sate le frecce destra e sinistra (oppu¬
re freccia giù e freccia su), per spo¬
stare l'indicatore rispettivamente in
giù e in su lungo la lista. Quanto
l'indicatore è accanto alla categoria
desiderata premete <RETURN>. Pre¬
mendo <ESC> si torna invece alla
videata precedente. Quando avete in¬
trodotto la vostra lista potrete con
poche battute modificare, mettere in
ordine alfabetico o stampare la lista
della spesa.
Scegliete la categoria che desidera¬
te, usando le frecce e il tasto <RE-
TURN>. Adesso usate l'opzione (A)
(Aggiungi un prodotto) per introdur¬
re gli articoli nella vostra lista della
spesa. Se avete bisogno di acquistare
adesso l'articolo che state digitando
battete S quando Super Shopper vi
chiede se l'articolo è da acquistare su¬
bito.
Presso l’articolo compare un con¬
trassegno di spunta. Gli articoli così
spuntati saranno stampati nella lista
della spesa; quelli non spuntati,
viceversa, non compariranno nella li¬
sta stampata fino a quando non ne a¬
vrete bisogno, ma di questo parlere¬
mo più avanti.
Finita questa categoria scegliete
l’opzione (P) (Prossima categoria).
Capita facilmente di cambiare idea
dopo aver battuto gli articoli, e quin¬
di non preoccupatevi se la lista non
vi riesce giusta la prima volta. Quan¬
do avete finito dovreste avere una li¬
sta di tutti i cibi che rientrano nei
vostri acquisti abituali, disposti per
categoria.
Potrebbe essere questo il momen¬
to adatto per premere <ESC> e tor¬
nare al menù principale, facendo at¬
tenzione a usare l'opzione (Q) (Fini¬
re) di modo che la vostra lista sia im¬
magazzinata sul dischetto. Super
Shopper dispone di protezioni per ga¬
rantire che salviate con successo la
vostra lista prima di uscire dal pro¬
gramma, ma non può impedirvi di
spegnere il computer o di premere
<CTRL> <RESET>.
Due parole sull'introduzione delle
liste: Super Shopper è efficiente, ma
sarebbe una perdita di tempo installa¬
re il programma ogni volta che vi
viene in mente un solo articolo che
dovete comprare.
Potrebbe essere invece il caso di te¬
nere brevi liste scritte a mano, e in-
57
trodurre tutti gli articoli in una sola
volta prima di uscire per andare al ne¬
gozio.
Un’altra cosa: se vi piace studiare
le ricette con la lista degli ingredien¬
ti alla mano, per vedere se vi manca
qualcosa, Super Shopper vi farà ri¬
sparmiare molti viaggi supplementa¬
ri al negozio, alla ricerca di un paio
di uova per la torta. Anche perché
potrebbe essere già chiuso...
Come stampare
la lista della spesa
Per stampare la lista della spesa se¬
lezionate S (Stampare una lista della
spesa) sul menù principale e introdu¬
cete la vostra scelta del formato di
80 o di 132 colonne. Super Shopper
stamperà una lista comprendente tut¬
ti i nomi di categoria, e sotto ogni
nome di categoria ci saranno gli arti¬
coli che avete spuntato per questo gi¬
ro di compere.
Fatta la spesa avete due modi a di¬
sposizione per eliminare gli indicato¬
ri dai file di Super Shopper. Potete e-
liminare tutti gli indicatori dalle li¬
ste premendo U (Aggiornare le liste
dopo la spesa) e poi R (Rimuovere
tutti i marcatori) nel menù principa¬
le. Altrimenti potete passare a uno a
uno tutti gli articoli spuntati selezio¬
nando sul menù principale U segui¬
to da S (Selezionare i marcatori da
togliere).
Se optate per questo secondo meto¬
do premete S (sì) o N (no) ogni vol¬
ta che Super Shopper vi chiede "Hai
comprato <questo articolo>?".
Come sempre, una volta aggiorna¬
te le vostre liste usate l’opzione (Q)
per mettere fine alla seduta. Questo
assicura che le vostre liste siano im¬
magazzinate sul dischetto come le a-
vete lasciate.
Come si inserisce
e come funziona
Come si vede dal listato 1 Super
Shopper funziona solamente in Pro-
DOS.
Se ne può però creare una versione
che funziona in DOS 3.3 eliminan¬
do qualche linea dal listato 1 e ag¬
giungendo, o sostituendo alle linee
tolte, le linee visibili nel listato 2.
Questa seconda versione funziona an¬
che in ProDOS, ma il listato 1 è
più breve e molto più veloce, in par¬
ticolare nel caso di liste lunghe.
Per digitare Super Shopper battete
Listato 1. Super Shopper
Versione ProDOS. Per il DOS 3.3 introdurre questo listato
e apportarvi le modifiche indicate nel listato 2.
1 REM -
2 REM SUPER.SHOPPER
3 REM DI STEVEN E
4 REM MARSHA MEUSE
5 REM COPYRIGHT (C) 1986
6 REM BY APPLICANDO 4
7 REM MICROSPARC, INC
8 REM -
9 REM Questa versione funziona solo in ProDOS
60 GOTO 100
70 BBS = FOR I = 1 TO LEN (B$):B = ASC ( MIDS (B$,I,1)):BB$
= BBS + CHRS (B - (B > 96 AND B < 123) * 32): NEXT I :B$ = BB
$ : RETURN
80 WAIT - 16384/128: GET A$: IF ASC (A$) > 95 THEN A$ = CHRS (
ASC (A$) - 32)
90 RETURN : REM "converte in maiuscolo/ i caratteri minuscoli
100 TEXT : HOME
110 REM *
120 REM " Se il computer non è un //e o //c convertire il
130 REM " testo minuscolo del programma in maiuscolo
140 REM
150 IF PEEK ( - 1101) < > 6 THEN A = 768: FOR B = A TO A + 47:
READ C: POKE B,C: NEXT : CALL A
160 DATA 165/103/133/0/165/104/133/1/160/1/177/0,240/33/160/4
170 DATA 177/0/240/13/48/8/201/96,144/4/41/95/145/0/200/208
180 DATA 239/160,0/177/0/170/200/177/0/133,1,134/0/208/223,96
200 ONERR GOTO 2950
210 PRINT CHRS (4)"RESTORE SHOPPER.VARS": POKE 216,0
220 REM
230 REM " Codici controllo stampante (attualmente per Imagewrite
r)
240 REM
250 PSLOT = 1: REM "numero slot stampante
260 PINITS = CHRS (9) + "80N": REM "Stringa inizializzazione st
ampante
270 PFFS = CHRS (12) : REM "Codice controllo stampa di un avanza
mento modulo
280 P80S = CHRS (27) + "N": REM "Codice controllo stampa a 80 c
donne
290 P132S = CHRS (27) + "Q": REM "Stampa 17 cpi
300 PCS = CHRS (27) + "X": REM "Codice controllo stampa nome ca
tegoria (di solito sottolineatura)
310 PNS = CHRS (27) + "Y": REM "Codice controllo stampa normale
(nega PCS)
320 REM
330 REM " Menù principale
340 REM
350 HOME : GOSUB 1590: VTAB 8: PRINT "Puoi:": PRINT : PRINT TAB(
4)" (W) Scrivere le liste": PRINT : PRINT TAB( 4)" (U) Aggior
nare le liste dopo la spesa";
360 PRINT : PRINT TAB( 4)"(S) Stampare una lista della spesa": P
RINT : PRINT TAB( 4)"(F) Stampare la lista completa": PRINT
370 PRINT TAB( 4)"(A) Aggiungere, Cambiare o Eliminare le
categorie": PRINT : PRINT TAB( 4)"(Q) Finire"
380 HTAB 1: VTAB 22: GOSUB 80:AN$ = A$
390 IF A$ = "W" THEN 490
400 IF A$ = "U" THEN 660
410 IF A$ = "S" THEN 1280
420 IF A$ = "F" THEN 1280
430 IF A$ = "A" THEN 2430
440 IF A$ = "Q" THEN 3100
450 GOTO 350
4 60 REM
470 REM " Scrive le liste
480 REM
490 GOSUB 2130: HOME
500 GOSUB 1770
510 VTAB 23: PRINT "A)ggiungi,E)limina,C)ambia,M)etti/Togli,P)ros
sima,S)eleziona,R)iordina, <ESC>";
520 HTAB 1: VTAB 1: GOSUB 80: GOSUB 1600
530 IF A$ = "S" THEN 1230
540 IF A$ = "A" THEN 800
550 IF A$ = "E" AND LEN (P$(C,1)) THEN 900
560 IF A$ = "C" AND LEN (P$(C,1)) THEN 1020
570 IF A$ = "M" AND LEN (P$(C,1)) THEN 1080
580 IF A$ = "R" AND LEN (P$(C,1)) THEN 1120
590 IF ASC (A$) = 27 THEN 350
600 IF A$ < > "P" THEN 510
610 HP = 0:VP = 0:C = C + 1: IF C = CTG THEN C = 0
620 GOTO 500
630 REM
640 REM " Aggiorna le liste dopo la spesa
650 REM
660 HOME : VTAB 5: PRINT TAB( 4)"==========================-====
DOS 3.3
ProDOS
Apple Ile
Apple Ile
58
====": PRINT TAB( 4)"! Aggiorna le liste dopo la spesa !": P
RINT TAB( 4)"===================================": PRINT : P
RINT : REM "35/35 SEGNI =
670 PRINT "Puoi:": PRINT : PRINT TAB( 2)"R)imuovere tutti i mare
atori : PRINT : PRINT TAB( 2)"S)elezionare i marcatori d
a rimuovere": PRINT : PRINT TAB( 2)"<ESC> per men'": PRINT :
PRINT : GOSUB 80: IF ASC (A$) = 27 THEN 350
680 IF A$ = "S" THEN 710
690 IF A$ > < "R" THEN 660
700 FOR C = 0 TO CTG - 1: FOR P = 1 TO 40:P%(C,P) - 0: NEXT : NEX
T : GOTO 350
710 FOR C = 0 TO CTG - 1: GOSUB 1770: FOR P = 1 TO 40: IF NOT P%
(C,P) THEN NEXT : NEXT : GOTO 350
720 VTAB 23: PRINT TAB ( 8)"Hai comprato "P$ (C,P)"?": VTAB 24: HT
AB 9: PRINT "(S/N) o <ESC> menù";: GOSUB 80: GOSUB 1600: IF
ASC (A$) = 27 THEN P = 40:C = CTG: GOTO 760
730 IF A$ = "S" THEN P%(C,P) = 0: GOSUB 1620: GOTO 760
740 IF A$ = "N" THEN 760
750 GOTO 720
760 NEXT : NEXT : GOTO 350
770 REM
780 REM " Aggiunge un prodotto
790 REM
800 IF LEN (P$ (C,40)) THEN PRINT CHR$ (7)"Questa lista è comp
leta.": GOSUB 1610: GOSUB 1600: GOTO 510
810 GOSUB 1650: IF NOT LEN (P3(C,1)) THEN P = 1: GOTO 850
820 VTAB 23: PRINT TAB( 2)"Scegli un posto per il nuovo prodotto
":NP = NP + 1:P3(C,NP) = CHR$ (27): IF NP = 21 THEN GOSUB 1
770
830 GOSUB 1890: GOSUB 1600: IF P = NP THEN 850
840 A = P: FOR P = NP TO A + 1 STEP - 1:P3(C,P) = P$(C,P - 1):P%
(C, P) = P% (C, P - 1) : NEXT
850 P3(C,P) = B$: P% (C, P) = B: IF P = NP THEN GOSUB 1620: GOTO 51
0
860 GOTO 500
870 REM
880 REM " Elimina un prodotto
890 REM
900 VTAB 23: PRINT TAB( 5)"Quale prodotto vuoi eliminare?": GOSU
B 1890: GOSUB 1600
910 PRINT "Elimini "P$(C,P)"? (S/N) or <ESC>";
920 GOSUB 80: GOSUB 1600: IF ASC (A3) = 27 THEN 510
930 IF A3 = "N" THEN 900
940 IF A3 < > "S" THEN 920
950 IF P = NP THEN VP = VP - 1
960 IF P < 40 THEN P3(C,P) = P3(C,P + 1):P%(C,P) = P%(C,P + 1): I
F NOT LEN (P3 (C,P)) THEN GOSUB 1600: GOTO 500
970 IF P = 40 THEN P3(C,P) = "":P%(C,P) = 0: GOSUB 1600: GOTO 500
980 P = P + 1: GOTO 960
990 REM
1000 REM " Cambia il nome di un prodotto
1010 REM
1020 VTAB 23: PRINT TAB( l)"Quale nome vuoi cambiare?": GOSUB 18
90: GOSUB 1600
1030 GOSUB 1650
1040 P3 (C,P) = B3:P%(C,P) = B: GOSUB 1620: GOTO 510
1050 REM
1060 REM " Cambia il marcatore dell’articolo sulla lista
1070 REM
1080 GOSUB 1600: PRINT TAB ( 2)"Scegli l'articolo da listare ": G
OSUB 1890 :P% (C f P) = NOT P%(C,P): GOSUB 1600: GOSUB 1620: GO
TO 510
1090 REM
1100 REM " Riordina una lista (ordinamento alfabetico)
1110 REM
1120 GOSUB 1600: PRINT "Lista alfabetica? (Conferma (S/N) ";: GOS
UB 80: IF A3 = "N" THEN GOSUB 1600: GOTO 510
1130 IF A3 < > "S" THEN 1120
1140 GOSUB 1600: PRINT TAB( 14)" (sto lavorando...)"
1150 FOR B = 2 TO 40:A3 = P3(C,B):A = P%(C,B): IF NOT LEN (A3)
THEN B = 40: NEXT : GOTO 1190
1160 FOR P = B - 1 TO 1 STEP - 1 : IF P3(C,P) < A3 THEN P3(C / P +
1) = A3 : P%(C,P + 1) = A:P = 1: NEXT : NEXT : GOTO 1190
1170 P3 (C, P + 1) = P3 (C,P):P% (C, P + 1) = P%(C,P) : NEXT
1180 P3 (C,P + 1) = A3 :P%(C,P + 1) = A: NEXT
1190 GOTO 500
1200 REM
1210 REM " Cerca categoria seguente (calcola posizione freccia)
1220 REM
1230 IF CTG < 21 THEN VC = C + 1 :HC = 0: GOTO 4 90
1240 HC = 2 + ( (C > 19) * 20) :VC = 1 + C - ((C > 19) * 20): GOTO
490
1250 REM
1260 REM " Stampa la lista della spesa
1270 REM
1280 HOME : VTAB 12: PRINT TAB( 7)"(A)80 o (B) 132 colonne? ";: G
OSUB 80: IF A3 = "B" THEN CLM = 8: GOTO 1320
1290 IF A3 = CHR3 (13) OR A3 = CHR3 (27) THEN 350
1300 IF A3 < > "A" THEN 1280
1310 clm = 5 (Continua)
il programma in Applesoft visibile
nel listato 1 e salvatelo sul di¬
schetto con il comando:
SAVE SUPER.SHOPPER
Il listato 2 è una lista delle mo¬
difiche che convertono Super Shop¬
per per il funzionamento in DOS
3.3. Le modifiche sono in ordine nu¬
merico, in modo che possiate battere
il listato 1 e spuntare ogni modifica
quando la raggiungete. Fate attenzio¬
ne a eliminare le linee elencate nel
paragrafo esplicativo. Salvate la ver¬
sione DOS 3.3 completata con il co¬
mando:
SAVE SUPER.SHOPPER
Super Shopper fa da intermediario
fra voi e i dati sul vostro dischetto,
permettendovi di editare e stampare
le vostre liste della spesa. La diffe¬
renza principale fra le versioni Pro-
DOS e DOS 3.3 è il modo in cui i
dati sono immagazzinati sul dischet¬
to: la versione DOS 3.3 usa file di
testo ad accesso casuale, e la versio¬
ne ProDOS usa il file VAR, un tipo
di file non disponibile con il DOS
3.3. Il file VAR è un parente del file
binario, e contiene tutte le variabili
del programma in Applesoft che lo
ha creato. Questo permette a Super
Shopper di caricare rapidamente i vo¬
stri dati della spesa, modificarli in
memoria e scrivere il tutto quando u-
scite dal programma.
Invece quando fate girare la versio¬
ne in DOS 3.3, questa deve leggere
ogni voce tramite l'istruzione IN¬
PUT dellApplesoft. E' vero che cer¬
ca di saltare i record vuoti, ma con
tutto ciò il procedimento può essere
lungo. Poi, per evitare un'ancor più
lunga scrittura sul dischetto alla fine
di una seduta, la versione DOS 3.3
aggiorna le singole voci sul dischet¬
to ogni volta che ne viene cambiata
una. Qui la maggior velocità della
versione ProDOS è un indubbio van¬
taggio.
La gestione del file VAR è molto
facile, tramite i comandi del Pro¬
DOS STORE e RESTORE. Molti
programmi in Applesoft che usano
file di testo DOS 3.3 per immagazzi¬
nare i dati potrebbero essere notevol¬
mente accelerati usando file VAR in
ProDOS.
Per chi è interessato ad approfondi¬
re lo studio del meccanismo interno
di Super Shopper la tavola 1 de-
59
■
■
scrive le funzioni delle varie subrou¬
tine, e la tavola 2 documenta le va¬
riabili.
Modifiche e
personalizzazioni
Se volete potete personalizzare Su¬
per Shopper in conformità con le vo¬
stre esigenze. Per esempio se non a-
vete nello slot 1 una stampante C. I-
toh Prowriter o l’Apple Imagewriter,
dovrete cambiare i codici di control¬
lo della stampante alle linee 250-
310. PSLOT è lo slot nel quale si
trova la vostra scheda stampante (1-
7). PINIT$ è la stringa per l’inizializ-
zazione della stampante.
Notate che essa deve anche disatti¬
vare l'eco dei caratteri sullo schermo
(solitamente <CTRL>L). P80$ e
PI32$ sono le sequenze di codice di
controllo che danno istruzione alla
vostra stampante di stampare rispetti¬
vamente in formato 80 colonne o
132 colonne. Infine PC$ contiene il
codice per evidenziare i nomi delle
categorie e PN$ contiene il codice
per disattivare l'evidenziamento. Su¬
per Shopper è stato configurato in
modo che sottolinei i nomi di cate¬
goria, ma può darsi che li vogliate
invece stampare in neretto. Per esem¬
pio, per convertire il programma in
modo che giri con la stampante E-
pson sostituite le linee 280-310 con
le seguenti:
280 P80$ = CHR$(18)
290 Pl$ = CHR$(27) + ”Q"
300 PCS = CHR$(27) + +
CHR$ (I)
310 PN$ = CHR$(27> + +
CHR$ (0)
Per avere i codici appropriati con¬
sultate i manuali della vostra stam¬
pante e della vostra interfaccia.
Potete anche cambiare ciò che av¬
viene quando uscite dal programma.
Super Shopper, così come è scritto,
si limita a pulire lo schermo e a fer¬
marsi. Per mettere il programma su
un dischetto separato, pilotato da me¬
nù, e farlo tornare al vostro program¬
ma di menù quando avete finito,
cambiate la linea 3140. Super Shop¬
per termina sempre a questa linea.
Se il vostro programma di menù si
chiama STARTUP dovreste cambia¬
re così la linea 3140:
3140 POKE 216,0 : HOME : PRIN-
1320
1330
1340
1350
1360
1370
1380
1390
1400
1410
1420
1430
1440
1450
1460
1470
1480
1490
1500
1510
1520
1530
1540
1550
1560
1570
1580
1590
1600
1610
1620
1630
1640
1650
1660
1670
1680
1690
1700
1710
1720
1730
1740
1750
1760
1770
1780
1790
1800
1810
1820
1830
1840
1850
1860
1870
1880
1890
1900
1910
1920
1930
1940
1950
1960
HOME : VTAB 12: PRINT TAB ( 3) "Sto stampando la lista della
spesa": PRINT : PRINT TAB ( 6)"Accendi la stampante, prego."
ONERR GOTO 1360
PRINT D$"PR#"PSLOT: PRINT : VTAB 14: CALL - 958: POKE 216,0
: PRINT PINITS: IF A$ = "A" THEN PRINT P80$: GOTO 1380
PRINT P132$: GOTO 1380
POKE 216,0: IF PEEK (222) < > 3 THEN 2950
PRINT D$"PR#0": PRINT : HOME : VTAB 10: PRINT CHR$ (7) "Non
c'è scheda stampante nello slot "PSLOT".": VTAB 23: GOSUB 16
10: GOTO 350
IF AN$ = "F" THEN 1500
POKE HT, CLM * 7: PRINT "Lista della spesa": PRINT : PRINT
FOR C = 0 TO CTG - 1 STEP CLM: PRINT PCS
A = C + CLM - 1: IF A = > CTG THEN A = CTG - 1
NP = 0: FOR B = C TO A
IF P%(B,PR%(B)) THEN POKE HT, (B - C) * 16: PRINT P$(B,PR%(B
) ); :PR%(B) = PR%(B) + 1:NP = 1: NEXT : GOTO 1460
PR%(B) = PR%(B) + 1: IF PR% (B) < 41 THEN IF LEN (P$(B,PR%(
B))) THEN 1430
PR%(B) = 40: NEXT
IF NP THEN PRINT PNS
NP = 0: FOR B = C TO A: IF PR% (B) < 40 THEN NP = 1
NEXT : IF NP THEN 1410
NEXT : PRINT PFFS: PRINT D$"PR#0": FOR B = 0 TO CTG - 1 : PR%(
B) = 0: NEXT : GOTO 350 *
PRINT "Ecco l'intera lista!": PRINT : PRINT
FOR C = 0 TO CTG - 1 STEP CLM: PRINT PCS: A - C + CLM - 1 : IF
A = > CTG THEN A = CTG - 1
FOR P = 0 TO 40:NP = 0: FOR B = C TO A: IF NOT LEN (P$(B,P
)) THEN NEXT : GOTO 1540
POKE HT, (B - C) * 16: PRINT P$(B,P);:NP = 1: NEXT
IF NP THEN PRINT PNS
NEXT : NEXT : PRINT PFFS: PRINT D$"PR#0": GOTO 350
REM
REM " Subroutine varie
REM
VTAB 3: PRINT ”*****************************************
1986 by Applicando
**************«. RE
HTAB B
PRINT TAB( 17)".
POKE 34, PEEK (37
TEXT : GOSUB 1710:
REM "15 PUNTI
RETURN
POP : GOTO 510
Super Shopper di Steven Meuse ** (C)
& MicroSPARC **************************
TURN : REM "41/2/41 ASTERISCHI
VTAB 23: HTAB 1: CALL - 958: RETURN
PRINT TAB ( 6)"premi <RETURN> per continuare...";: GET A$: R
ETURN
B = 3 + (NP < 21) * 7 + 20 * (P > 20): HTAB B: VTAB 1 + P -
(P > 20) * 20: IF B = 3 THEN POKE 33,19
CALL - 868: POKE 33,40: IF P%(C,P) THEN PRINT
2: PRINT PS (C,P): RETURN
."; : HTAB 1:
): INPUT "Scrivi il nuovo articolo->";B$:
GOSUB 1600: IF LEN (B$) > 15 THEN 1650:
IF NOT LEN (B$) THEN POP : GOTO 510
GOSUB 70: PRINT "C'} "B$" sulla tua attuale": PRINT "lista d
ella spesa? (S/N/ESC) GOSUB 80: GOSUB 1600: IF A$ = "S"
THEN B = 1: RETURN
IF A$ = "N" THEN B = 0:
IF ASC (A$) = 27 THEN
GOTO 1670
IF NOT LEN (B$) THEN RETURN
A$ = FOR B = 1 TO LEN (B$) : IF
31 THEN A$ = A$ + MIDS (B$,B,1)
NEXT :B$ = A$: RETURN
REM
REM " Visualizza la lista dei prodotti
REM
D = 3 :NP = 40: IF NOT LEN (P$(C,21)) THEN
VTAB 1: POKE 35,22: HOME : POKE 35,24: HTAB (39 - LEN (PS(C
,0))) / 2: INVERSE : PRINT P$(C,0): NORMAL
FOR A = 1 TO 20: HTAB D: IF P%(C,A) THEN PRINT
HTAB D + 2: PRINT P$(C,A): IF NOT LEN (P$(C,A)) THEN NP =
A - 1 : A = 20: NEXT : RETURN
NEXT
VTAB 2:D = 23: FOR A = 21 TO 40: HTAB D: IF P%(C,A) THEN PR
INT "*";
HTAB D + 2: PRINT P$(C,A): IF NOT LEN (P$(C,A)) THEN NP =
A - 1 : A = 40
NEXT : RETURN
REM
REM " Sceglie un prodotto (con la freccia mobile)
REM
GOSUB 1770
VTAB 24: PRINT "Frecce per scegliere-(RET) = conferma";: IF
VP < 2 THEN VP = 2:HP = 0
IF NP > 20 THEN 1980
VTAB VP: HTAB 7: PRINT
HTAB 1: VTAB 1: GOSUB 80: VTAB VP: HTAB 7: PRINT "
IF ASC (A$) = 21 OR ASC (A$) = 10 THEN VP = VP + 1 : IF VP
= NP + 2 THEN VP = 2
IF ASC (A$) = 8 OR ASC (A$)
1 THEN VP = NP + 1
IF ASC (A$) =13 THEN P = VP - 1:
IF ASC (A$) = 27 THEN P = VP
ASC ( MIDS (B$,B,1))
10
11 THEN VP = VP - 1: IF VP =
RETURN
1: GOTO 2080
60
1970 GOTO 1910
1980 IF HP = 0 THEN HP = 1
1990 VTAB VP: HTAB HP : PRINT
2000 HTAB 1: VTAB 1: GOSUB 80: VTAB VP: HTAB HP : PRINT ** " ;
2010 IF ASC (A$) = 13 THEN P = VP - 1 + ((HP > 1) *20): RETURN
2020 IF ASC (A$) = 21 OR ASC (A$) = 10 THEN VP = VP + 1 : IF VP
= 22 AND HP = 1 THEN VP = 2 : HP = 20
2030 IF VP + 18 = NP AND HP = 20 THEN VP = 2:HP = 1
2040 IF ASC (A$) = 8 OR ASC (A$) = 11 THEN VP = VP - 1 : IF VP =
1 AND HP = 1 THEN HP = 20:VP = NP - 19
2050 IF VP = 1 AND HP = 20 THEN VP = 21:HP - 1
2060 IF ASC (AS) > < 27 THEN 1990
2070 P = VP - 1 + ( (HP > 1) * 20)
2080 GOSUB 1600: POP : IF P$(C,NP) = CHR$ (27) THEN P$(C,NP) = "
" : VP = VP - (P = NP) :NP = NP - 1: IF NP = 20 THEN GOSUB 177
0: REM "aggiusta NP e VP se (A)ggiungere l'ha cambiato
2090 GOTO 510
2100 REM
2110 REM " Sceglie una categoria (con la freccia mobile)
2120 REM
2130 HOME : VTAB 22: PRINT TAB ( 12)"Quale categoria?"
2140 PRINT TAB ( 6)"Usa le frecce per scegliere": PRINT TAB( 9)"
(RETURN) per confermare";: VTAB 1
2150 HP = 0:VP = 0: IF VC < 1 THEN VC = 1
2160 B = 12: IF CTG > 20 THEN B = 5: GOTO 2280
2170 HC = 2: FOR C = 0 TO CTG - 1: HTAB B: PRINT P$(C,0): NEXT
2180 VTAB VC: HTAB 9: PRINT "==>";
2190 HTAB 35: VTAB 23: GOSUB 80: VTAB VC: HTAB 9: PRINT "
2200 IF ASC (A3) - 21 OR ASC (A3) = 10 THEN VC = VC + 1
2210 IF ASC (A3) = 8 OR ASC (A3) = 11 THEN VC = VC - 1
2220 IF VC = 0 THEN VC = CTG
2230 IF VC = CTG + 1 THEN VC = 1
2240 IF ASC (A3) = 13 THEN C = VC - 1: RETURN
2250 IF ASC (A3) = 27 AND ANS = "W" THEN POP : GOTO 350
2260 IF ASC (A3) = 27 THEN POP : GOTO 2430
2270 GOTO 2180
2280 FOR C = 0 TO 19: HTAB B: PRINT P3(C,0): NEXT : VTAB 1:B = 25
: FOR C = 20 TO CTG - 1: HTAB B: PRINT P$(C,0): NEXT : IF HC
= 0 THEN HC = 2
22 90 IF VC = 0 THEN VC = 1 : HC = 2
2300 VTAB VC: HTAB HC: PRINT "==>";
2310 HTAB 35: VTAB 23: GOSUB 80: VTAB VC: HTAB HC : PRINT "
2320 IF ASC (A3) = 13 THEN C = VC - 1 + ((HC > 2) *20): RETURN
2330 IF ASC (A3) = 21 OR ASC (A3) = 10 THEN VC = VC + 1 : IF VC
= 21 AND HC = 2 THEN VC = 1 :HC » 22
2340 IF HC = 22 AND VC + 19 = CTG THEN VC = 1:HC = 2
2350 IF ASC (A3) = 8 OR ASC (A3) = 11 THEN VC = VC - 1 : IF VC =
0 AND HC = 2 THEN VC = CTG - 20:HC = 22
2360 IF VC = 0 AND HC = 22 THEN VC = 20:HC = 2
2370 IF ASC (A3) = 27 AND ANS = "W" THEN POP : GOTO 350
2380 IF ASC (A3) - 27 THEN POP : GOTO 2430
2390 GOTO 2300
2400 REM
2410 REM " Menù aggiunta, cambio ed eliminazione categoria
2420 REM
2430 HOME : GOSUB 1590
2440 PRINT : PRINT TAB ( 9)"==========================": PRINT T
AB( 9)"! Modifiche di categoria !": PRINT TAB( 9) "=========
=================••: REM "26/26 SEGNI =
2450 PRINT : PRINT "Puoi:": PRINT : PRINT : PRINT TAB( 9)"A)ggiu
ngere una categoria": PRINT : PRINT TAB ( 9)"E)1iminare una
categoria": PRINT : PRINT TAB( 9)"C)ambiare una categoria":
PRINT : PRINT TAB ( 9)"<ESC> per il menù"
2460 GOSUB 80: IF A3 = "E" THEN 2540
2470 IF A3 = "C" THEN 2690
2480 IF A3 = "A" THEN 2860
2490 IF ASC (A3) = 27 THEN 350
2500 GOTO 2460
2510 REM
2520 REM " Elimina una categoria
2530 REM
2540 HOME : VTAB 22: PRINT TAB( 3)"Quale categoria vuoi eliminar
e?": GOSUB 2140: VTAB 22: HTAB 1: CALL - 958: PRINT : PRINT
"Elimini "P3(C,0)"? (conferma S/N)"
2550 GOSUB 80: IF A3 = "N" THEN 2430
2560 IF ASC (A3) = 27 THEN 350
2570 IF A3 > < "S" THEN 2550
2580 HOME : VTAB 12: PRINT TAB ( 9)"Sto eliminando "P$(C,0)
25 90 IF C = CTG - 1 THEN VC = VC - 1 : GOTO 2610
2600 FOR C = C TO CTG - 2: FOR P = 0 TO 40:PS(C,P) = P$ (C + 1,P):
P%(C,P) = P% (C + 1, P) : NEXT : NEXT
2610 CTG = CTG - 1: FOR P = 0 TO 40:PS(CTG,P) = "":P%(CTG,P) = 0:
NEXT : IF CTG THEN 2430
2620 VTAB 1: PRINT : PRINT D$"UNLOCK"F3: PRINT D$"DELETE"FS
2630 HOME : GOSUB 1590: PRINT : PRINT : PRINT "Non hai us^to alcu
na categoria.": PRINT : PRINT "Puoi:": PRINT : PRINT TAB( 9
) " (A) Aggiungere categorie": PRINT : PRINT TAB( 9)"(Q) Fine
": GOSUB 80: IF A3 = "A" THEN 3000
2640 IF A3 = "Q" THEN 3140
2650 GOTO 2630
2660 rem (Continua)
Note sulla conversione
dal DOS al ProDOS
Eccoci a un argomento che mol¬
tissimi tra i lettori troveranno vera¬
mente prezioso.
Questo paragrafo, e tutti quelli a
seguire, infatti, è quasi un breviario
per chi si trova a dover convertire un
tipico programma in Applesoft dal
DOS 3.3 S ProDOS: le indicazioni
che contiene infatti vanno ben oltre
le necessità di chi deve convertire Su¬
per Shopper.
Il ProDOS Versione 1.1.1 com¬
prende il nocciolo del ProDOS,
chiamato PRODOS, e l’interprete
Basic del ProDOS, chiamato BA-
SIC.SYSTEM. Questo interprete è
il nesso fra i vostri programmi in
Applesoft e le routine di livello infe¬
riore del nocciolo del ProDOS (chia¬
mato anche MLI, ossia machine lan-
guage interface, interfaccia linguag¬
gio macchina). Quando in questa se¬
de si parla di ProDOS ci si riferisce
sia al nocciolo sia all'interprete Ba¬
sic, in quanto sono entrambi necessa¬
ri per programmare in Applesoft con
il ProDOS.
L'utilizzo della
memoria in ProDOS
Ci sono alcune considerazioni ge¬
nerali da fare sulla conversione dei
programmi Applesoft in ProDOS.
Più importante di tutto è trovare nel¬
la memoria un posto sicuro per le
subroutine in linguaggio macchina.
In DOS c’è una gran quantità di buo¬
ni nascondigli: a pagina 3 ($300-
$3CF), fra $800 e il vostro program¬
ma (se avete trasferito il vostro pro¬
gramma), fra il vostro programma e
LOMEM, fra HIMEM e il DOS, fra
il DOS e i suoi buffer di file, o nel¬
la language card. In ProDOS riman¬
gono sicuri soltanto tre di quei po¬
sti: a pagina 3, fra $800 e il vostro
programma e fra il BASIC.SY¬
STEM e i suoi buffer dei file.
E allora come e dove possiamo im¬
magazzinare in ProDOS le subrouti¬
ne in linguaggio macchina? Molti
programmi usano la pagina 3 per le
subroutine brevi. L’utilizzo dell'area
che va da $300 a $3CF non causerà
alcun problema con il ProDOS. Se
vi occorre un maggiore spazio la so¬
luzione più sicura e più facile è quel¬
la di trasferire in su nella memoria il
vostro programma in Applesoft, e
mettere le routine nello spazio che a-
■
61
2670
2680
2690
2700
2710
2720
2730
2740
2750
2760
2770
2780
2790
2800
2810
2820
2830
2840
2850
2860
2870
2880
2890
2900
2910
2920
2930
2940
2950
2960
2970
2980
2990
3000
3010
3020
3030
3040
3050
3060
3070
3080
3090
3100
3110
3120
3130
3140
REM " Cambia il nome di una categoria
REM
HOME : VTAB 22: PRINT TAB ( 6)"Quale nome vuoi cambiare?": G
OSUB 2140
HTAB 1: VTAB 22: CALL - 958: PRINT : PRINT TAB( 25)".
.HTAB 1: POKE 34,22: INPUT "Inserire una nuova c
ategoria>";B$: TEXT : GOSUB 1710: GOSUB 1600: IF NOT LEN (
B$) THEN 2430: REM "15 PUNTI
IF LEN (BS) > 15 THEN 2700
GOSUB 70: PRINT "Cambi "P$(C,0) M in "B$"?";: VTAB 24: HTAB 1
3: PRINT "(conferma S/N)";
GOSUB 80: IF A$ = "N" THEN 2430
IF ASC {A$) = 27 THEN 350
IF A3 > < "S" THEN 2730
GOSUB 1600: PRINT TAB ( 12)" (C)onservi o (E)limini": PRINT
TAB ( 5)"il contenuto della lista ";P$ (C, 0)"?" ;
GOSUB 80: IF A3 < > "C" AND A3 < > "E" THEN 2770
HOME : VTAB 12: PRINT TAB( 2)"Sto cambiando il nome alla ca
tegoria"
PS (C,0) = BS:P = 0: IF A3 = "C" THEN 2820
FOR P = 1 TO 40: IF NOT LEN (P$(C,P)) THEN NEXT : GOTO 28
20
P$(C,P) = "":P% (C, P) = 0: NEXT
GOTO 2430
REM
REM " Aggiunge una categoria
REM
IF CTG < 40 THEN 2890
HOME : GOSUB 1590: VTAB 9: PRINT CHR3 (7)"Hai raggiunto il
limite di 40 categorie.Puoi aggiungere una nuova categoria s
olodopo aver eliminato una categoria nella lista."
VTAB 23: GOSUB 1610: GOTO 2430
VTAB 12: HTAB 1: CALL - 958: VTAB 16: PRINT TAB( 25)".
.";: HTAB 1: POKE 34,15: INPUT "Inserisci una nuova
categoria>";B3: TEXT : GOSUB 1710: IF NOT LEN (B3) THEN 2
430: REM "15 PUNTI
IF LEN (BS) > 15 THEN 2890
GOSUB 70 :C = CTG:PS(C,0) = B3:P%(C,0) = 1: FOR P = 1 TO 40:P
$(C,P) = "":P%(C, P) = 0: NEXT :CTG = CTG + 1: GOTO 2430
REM
REM " Prima esecuzione di SHOPPER.
REM
POKE 216,0: PRINT :P = PEEK (222): IF P < 5 OR P > 7 THEN
PRINT "ERRORE N."P" A LINEA N." PEEK (218) + PEEK (219) * 2
56: END
P = 0:C = 0:A = 0 :B = 0:HT = 36:FS = "SHOPPER.VARS":D3 = CH
R$ (4)
HOME : GOSUB 1590: PRINT : PRINT : PRINT "Puoi:": PRINT : PR
INT TAB( 8)"(I) Inserire categorie": PRINT : PRINT TAB( 8)
"(Q) Finire": HTAB 1: VTAB 1: GOSUB 80: IF A3 = "Q" THEN 314
0
IF Aè > < "I" THEN 2970
DIM P3 (39,40),P%(39, 40),PR%(39) :CTG = 0
HOME : GOSUB 1590: PRINT : PRINT TAB( 8)"==================
======": PRINT TAB ( 8)"! Preparazione Shopper !": PRINT TA
B( 8)"========================": PRINT : PRINT : PRINT : REM
"24/24 SEGNI =
PRINT TAB ( 22)"." : PRINT : PRINT TAB ( 9) "Pre
mi RETURN per finire": VTAB 15: POKE 34,14: HTAB 9: INPUT "N
ome categoria->";B3: TEXT : GOSUB 1710 : PS(CTG,0) = B3: REM "
15 PUNTI
IF NOT LEN (PS(CTG,0)) AND CTG THEN PRINT DS"CREATE"F$",T
VAR": GOTO 250
IF NOT LEN (PS(CTG,0)) THEN 2630
IF LEN (PS (CTG,0)) > 15 THEN VTAB 20: PRINT CHRS (7)"Voce
troppo lunga.": PRINT : PRINT : GOSUB 1610: GOTO 3000
BS = PS(CTG,0): GOSUB 70:P$(CTG,0) = B$:P%(CTG,0) = 1:CTG =
CTG + 1: IF CTG = 40 THEN PRINT D$"CREATE"F$",TVAR"GOTO 2
50
GOTO 3000
REM
REM " Fine programma
REM
ONERR GOTO 3120
VTAB 1: PRINT : PRINT D$"UNLOCK"F$: PRINT D$"STORE"F$: PRINT
D$"LOCK"F$: GOTO 3140
POKE 216,0:P = PEEK (222): IF P < 6 OR P > 9 THEN 2950
HOME : VTAB 10: PRINT CHRS (7)"Controlla il drive prego,":
PRINT : PRINT "e prova ancora a uscire da Shopper.": VTAB 23
: GOSUB 1610: GOTO 350
POKE 216,0: HOME : END
Checksum del listato 1
NOME FILE:
SUPER.SHOPPER.PRODOS
TIPO: A
LUNGHEZZA:
2554
CHECKSUM :
F8
vete così liberato. Anche se la cosa
non è documentata nei manuali del
ProDOS, il ProDOS si comporta co¬
me il DOS quando cambiate il punta¬
tore di M inizio del programma Apple¬
soft" alle locazioni 103 e 104 nella
pagina zero. Prendiamo in considera¬
zione un esempio che mostra come
farlo.
Supponiamo di avere una subrouti¬
ne in linguaggio macchina in un file
binario chiamato ML, lungo 1K. li¬
na volta riassemblato per girare a
$800 e salvato con BSAVE come
ML il programma in Basic dev'esse¬
re modificato. I programmi in Apple¬
soft cominciano solitamente in me¬
moria a pagina 8 ($800) e procedono
verso l’alto. Spostando un program¬
ma di quattro pagine a pagina 12
($C00) si rende disponibile uno spa¬
zio 1K da $800 a $BFF.
Il modo più facile per spostare un
programma è quello di cambiare il
puntatore a 103,104 e poi dire al
ProDOS di caricare ed eseguire nuo¬
vamente il programma:
10 PG = 12 : REM PAGINA CUI
TRASFERIRE L’INIZIO DEL
PROGRAMMA
20 IF PEEK (104) = PG THEN 60
30 POKE 104,PG : POKE 103,1
40 POKE PG * 256,0
50 PRINT CHR$(4) ”RUN MIO
PROGRAMMA"
60 PRINT CHR$(4) "BLOAD ML"
70 REM INIZIO EFFETTIVO DEL
PROGRAMMA
Per completare questa conversione
dovrete cambiare gli eventuali PE¬
EK, POKE e CALL in modo che ri¬
flettano la nuova locazione della vo¬
stra routine in linguaggio macchina.
Se il vostro programma è lungo più
di 6K e usa la pagina 1 dell’alta riso¬
luzione noterete probabilmente la
scomparsa della fine del programma
quando viene emesso il primo HGR.
La soluzione consiste nel trasferire
il programma appena sopra la pagi¬
na 1 Hi_Res a $4000 (pagina $40
ossia pagina 64 decimale). Cambiate
la linea 10 in PG = 64, ed ecco
fatto. Questo metodo di spostare il
programma in Basic per liberare me¬
moria è semplice e rapido.
Il metodo finale di mettere una su¬
broutine in linguaggio macchina fra
il BASIC.SYSTEM e i suoi file di
buffer è complicato, e adatto soprat¬
tutto agli utenti avanzati che voglia¬
no aggiungere comandi al ProDOS.
62
Listato 2. Super Shopper
DOS 3.3
ProDOS
Apple Ile
Modifiche del listato 1 per il DOS
3.3. Introdurre prima il listato 1;
poi eliminare (DEL) le seguenti linee:
1330, 1360, 1370, 2960, 3120 e 3130. Infine
aggiungere o sostituire le linee visibili qui sotto.
Apple Ile
9 REM "Questa versione funziona in DOS 3.3 o
ProDOS
105 P - 0 :C = 0 : A = 0:B = 0:D$ = CHRS (4) :HT =
36:F$ = "SHOPPER DATA"
195 PRINT D$"NOMONCIO"
205 PRINT D$"UNLOCK"F$: PRINT D$"OPEN"F$" / LI8":
PRINT D$"READ"F$",R0": INPUT CTG: DIM P$(3
9, 40),PR%(39),P%(39,40):LCTG = CTG: POKE 21
6 / 0
210 FOR C = 0 TO CTG - 1: FOR P = 0 TO 40: PRIN
T D$"READ"F$",R"C * 41 + P + 1: INPUT P$ (C,
P),P%(C,P): IF NOT LEN (P$(C,P)) THEN P =
40
215 NEXT : NEXT : PRINT D$"CLOSE"
700 GOSUB 3190: FOR C = 0 TO CTG - 1: FOR P = 1
TO 40: IF P%(C,P) THEN P%(C,P) = 0: GOSUB
3200
705 NEXT : NEXT : GOSUB 3210: GOTO 350
730 IF A$ = "Y" THEN P%(C,P) = 0: GOSUB 1620: G
OSUB 3180: GOTO 760
810 GOSUB 1650: IF NOT LEN (P$(C,1>) THEN P =
1: GOSUB 3190: GOTO 850
830 GOSUB 1890: GOSUB 1600: GOSUB 3190: IF P =
NP THEN 850
840 A = P: FOR P = NP TO A + 1 STEP - 1:P$(C,P
) = P$(C,P - 1):P% (C,P) = P%(C,P - 1): GOSU
B 3200: NEXT
850 P$(C,P) = B$:P%(C / P) = B: GOSUB 3200: GOSUB
3210: IF P = NP THEN GOSUB 1620: GOTO 510
950 GOSUB 3190: IF P = NP THEN VP = VP - 1
960 IF P < 40 THEN P$(C,P) = P$ (C,P + 1):P%(C,P
) = P%(C,P + 1): GOSUB 3200: IF NOT LEN (
P$(C,P)) THEN GOSUB 3210: GOSUB 1600: GOTO
500
970 IF P = 40 THEN P$(C,P) = ,, ":P%(C / P) = 0: GO
SUB 3200: GOSUB 3210: GOSUB 1600: GOTO 500
1040 P$(C,P) - B$:P% (C,P) = B: GOSUB 1620: GOSU
B 3180: GOTO 510
1080 GOSUB 1600: PRINT TAB( 2)"Scegli l'artico
lo da listare si/no": GOSUB 1890:P%(C,P) =
NOT P%(C,P): GOSUB 1600: GOSUB 1620: GOS
UB 3180: GOTO 510
1190 GOSUB 1770: GOSUB 3190: FOR P = 1 TO 40: G
OSUB 3200: IF NOT LEN (P$(C,P)) THEN P =
40
1195 NEXT : GOSUB 3210: GOTO 510
1340 PRINT D$"PR#"PSLOT: PRINT : VTAB 14: CALL
- 958: PRINT PINITS: IF A$ = "A" THEN PR
INT P80$: GOTO 1380
1350 PRINT P132$
2170 HC = 0: FOR C = 0 TO CTG - 1: HTAB B: PRIN
T P$ (C,0) : NEXT
2580 HOME : VTAB 12: PRINT TAB( 5)"Sto elimina
ndo "P$ (C, 0) : GOSUB 3190
2600 FOR C = C TO CTG - 2: FOR P = 0 TO 40: IF
P$(C,P) < > P$(C + 1,P) THEN P$(C,P) = P$
(C + l,P):P%(C f P) = P%(C + 1,P): GOSUB 320
0
2605 NEXT : NEXT
2610 CTG = CTG - 1:P = 0
2612 IF LEN (P$(CTG,P)) THEN P$(CTG,P) « "":P%
(CTG,P) = 0: GOSUB 3200:P = P + 1: IF P <
41 THEN 2612
2615 GOSUB 3220: GOSUB 3210: IF CTG THEN 2430
2790 GOSUB 3190:P$(C/0) = B$:P = 0: GOSUB 3200:
IF A$ = "C" THEN 2820
2810 P$(C/P) = "":P% (C/P) = 0: GOSUB 3200: NEXT
2820 GOSUB 3210: GOTO 2430
2910 C = CTG:P = 0: GOSUB 70:P$(C/0) = B$:P%(C,
0) = 1: GOSUB 3190: GOSUB 3200: FOR P = 1
TO 40 :P$ (C,P) = "":P% (C,P) = 0: GOSUB 3200
: NEXT :CTG = CTG + 1; GOSUB 3220: GOSUB 3
210: GOTO 2430
2950 POKE 216/0: PRINT : PRINT D$"CLOSE":P = P
EEK (222): IF P < 5 OR P > 6 THEN PRINT "
ERRORE N."P" ALLA LINEA N." PEEK (218) +
(Continua)
Glfem
Corso Italia 149 ■ 34170 GORIZIA
Telefono 0481/30909
MIRROR TECHNOLOGIES
MagNet 20 Disco rigido da 20 MByte interno per
Mac. Viene fornito con MacServe software della
Infosphere che permette:
Multillser (sino a 16 MAC in rete AppleTalk)
Partizione in volumi (sino a 16 volumi logici)
Disk Cache
Protezione con Password a livello di volume
Spool di stampa (sino a 32 lavori)
Print Server/Disk Server su Apple Talk
Backup completo o incrementale e Restore
Sistema di gestione gerarchico APPLE HFS
Costruzione estremamente robusta.
SEOrange Alierò
■■ ine.
Ora in Italia, distribuite da Elcom, le interfacce
per stampanti della Orange Micro, California,
U.S.A.
HOT LINK Per collegare a Apple Ile una
qualunque stampante parallela
GRAPPLER C Permette una facile stampa della
grafica su qualunque stampante parallela che
simula una ImageWriter II
GRAPPLER + SERIALE Finalmente semplice la
stampa grafica, anche a colori , con ImageWriter
II. Opzionale un Buffer sino a 64 K
GRAPPLER + La più diffusa interfaccia per
Apple. Più di 300.000 schede vendute. Si
abbina ad un gran numero di stampanti e
permette la stampa grafica con ben 27 funzioni
IMAGE BUFFER II "turbo" per l’IMAGE WRITER
II. 64 K di buffer espandibili a 128 K
IMAGE MATE Permette di usare IMAGE WRITER
Il con un PC o compatibile ed è, allo stesso
tempo, un buffer da 64 K.
Tutte le schede hanno un ricco manuale in
italiano.
THUNDERSCAN V. 3.1
E’ ora disponibile l'ultimissima versione di
ThunderScan. Compatibile con tutte le stampanti
Apple. Con un adattatore ed un cavo speciale é
ora possibile usarla anche con Macintosh Plus .
VICOM COMMUNICATIONS SOFTWARE
Il "Vero programma per comunicazioni” é ora disponi¬
bile in Italia. Permette il collegamento con tutte le ban¬
che dati: anche Videotel. Multitasking: contemporanea¬
mente potete trasmettere un file mentre ne stampate
un'altro e ne state creando un terzo. Emulazione VT
100. Facile da usare. In combinazione con il Modem-
phone 1203 in offerta speciale presso gli Apple Center.
I prodotti distribuiti da Elcom sono disponibili
presso tutti gli Apple Center.
63
Nomi dei file e
numeri dei volumi
Il ProDOS ha norme rigorose per
i nomi di file.
Un nome di file in ProDOS deve
sempre cominciare con una lettera,
comprendere soltanto lettere, nume¬
ri e punti, e contenere al massimo
15 caratteri.
Fa spicco l'assenza, dal novero dei
componenti del nome di file del Pro¬
DOS, dello spazio, che di solito è
sostituito da un punto.
Un.vero.peccato.
Ottemperare a questa limitazione
può essere complicato. E’ facile ab¬
breviare e cambiare il nome dei file
del vostro programma: la utility
CONVERT del ProDOS lo fa auto¬
maticamente per voi.
Il problema è che i comandi DOS
incorporati nel vostro programma
fanno ancora riferimento ai file u-
sando i loro vecchi nomi DOS. Sco¬
vare e cambiare i vecchi nomi di file
nel programma può richiedere diver¬
se sedute con un buon editor di linee
di programma.
Cambia anche la prassi del DOS
di far riferimento a un dischetto con
il suo numero di volume. In Pro¬
DOS ci si riferisce a un dischetto
con il suo prefix, o nome.
Inoltre quando si dà al ProDOS un
nome di dischetto con cui lavorare e-
splorerà, per trovare quel dischetto,
tutti i dispositivi di memoria in
linea.
I numeri di volume erano raramen¬
te usati nel DOS, eccezion fatta per
gli schemi di protezione.
Comunque se i vostri programmi
contengono riferimenti al numero di
volume, non dovete preoccuparvi:
infatti non è tassativo rimuoverli, in
quanto il ProDOS non farà che igno¬
rarli.
Il comando
<CONTROL>D
Il ProDOS non esige più che un
comando emesso dall'intemo di un
programma sia preceduto da un ritor¬
no carrello. Il comando sarà eseguito
quando il cursore di output è in qual¬
siasi punto dello schermo. Perfino i
GET non turbano il ProDOS. C’è
però un trucco da tener presente. Il
primo carattere della stringa di co¬
mando dev'essere <CTRL>D, senza
eccezioni.
Potete usare PRINT CHR$(4)"co-
mando", o D$=CHR$(4):PRINT D$
"comando”, o perfino incorporare un
invisibile <CTRL>D tra le virgolet¬
te alte ("”) in un’istruzione PRINT.
Ma se userete l'accorgimento D$=
CHR$(13)+CHR$(4) esso non fun¬
zionerà. Togliete il "CHR$(13)+" e
sarete a posto.
Variazioni nei
comandi del DOS
Il ProDOS ha riorganizzato i co¬
mandi a disposizione dei programma-
tori. Alcuni comandi sono scompar¬
si, alcuni sono cambiati e qualcuno
è nuovo. Ecco i comandi del DOS
che il ProDOS non usa:
MON, NOMON e MAXFI-
LES - MON e NOMON aiutano
nel debugging dei programmi che u-
sano i comandi DOS. Il ProDOS
non supporta nè l'uno nè faltro; i-
gnora i comandi NOMON, e il co¬
mando MON provoca un messaggio
di SYNTAX ERROR. MAXFILES
imposta il numero massimo dei file
che possono essere aperti simultanea¬
mente in DOS. E' utilizzato soprat¬
tutto per recuperare memoria per le
routine in linguaggio macchina, e-
mettendo un comando MAXFILES
1. In ProDOS si possono aprire in u¬
na sola volta fino a otto file, ed es¬
si consumano memoria solo quando
sono effettivamente aperti. Perciò
MAXFILES non è più necessario ed
è bene eliminarlo.
FP, INT e INTT - Il ProDOS
supporta solo l'Applesoft della
ROM, e quindi non ha più bisogno
di commutare fra linguaggio e lin¬
guaggio. Dite addio a FP e INT. An¬
che INIT è scomparso, a causa della
grande varietà di dispositivi possibi¬
le (e quindi formattabile) in Pro¬
DOS , e della piccola quantità di me¬
moria disponibile per la formattazio¬
ne delle routine. Adesso è il pro¬
gramma FILER del sistema Pro¬
DOS a occuparsi dei compiti di ini-
zializzazione. La scomparsa di INIT
significa anche che un dischetto il
quale carichi PRODOS e BA¬
SIC.SYSTEM deve avere il proprio
programma di avviamento denomina¬
to "STARTUP". Quando convertite
i programmi in ProDOS, o il pro¬
gramma convertito, o un program¬
ma di menù, o semplicemente un
programma per far girare il vostro
programma, dev'essere chiamato
STARTUP.
Sono stati potenziati quattordici
comandi del DOS, diversi dei quali
rivestono un particolare interesse
quando si convertono i programmi
DOS in ProDOS. Essi sono:
CATALOG e CAT - CATA-
LOG usa un nuovo formato di visua¬
lizzazione, con circa 80 caratteri per
riga. Questo display comprende più
informazioni di un catalogo DOS,
ed esse comprendono lunghezza e in¬
dirizzo del file, lunghezza del record
(per i file di testo) e le date di crea¬
zione e di ultima modifica del file.
La versione breve del comando,
CAT, crea un catalogo più corto, su
40 colonne, contenente meno infor¬
mazioni. Il catalogo CAT è più si-
PEEK (219) * 256: END
3020 IF NOT LEN (P$(CTG,0)) AND CTG THEN 3065
3050 B$ = P$(CTG,0): GOSUB 70:P$(CTG,0) = B$:P%
(CTG,0) = 1 :CTG = CTG + 1: IF CTG = 40 THE
N 3065
3065 LCTG = CTG: HOME : VTAB 12: PRINT TAB ( 10
)"Sto creando il file...": GOSUB 3230: GOT
O 250
3100 VTAB 1: PRINT : IF CTG = > LCTG THEN PRI
NT D$"LOCK"F$: GOTO 3140
3110 HOME : VTAB 12: PRINT TAB ( 3)"Sto ottimiz
zando i dati della spesa": GOSUB 3230: PRI
NT D$"LOCK"F$
3150 REM
3160 REM " Scrittura Dati su disco (versione
DOS)
3170 REM
3180 GOSUB 3190: GOSUB 3200: GOSUB 3210: RETURN
3190 VTAB 1: PRINT : PRINT D$"OPEN"F$",L18": RE
TURN
3200 VTAB 1: PRINT D$"WRITE"F$",R"C * 41 + P +
1: PRINT P$ (C,P) : PRINT P%(C,P): RETURN
3210 PRINT D$"CLOSE": RETURN
3220 PRINT D$"WRITE"F$",R0": PRINT CTG: RETURN
3230 GOSUB 3190: GOSUB 3210: PRINT D$"DELETE"F$
: GOSUB 3190: GOSUB 3220: FOR C = 0 TO CTG
- 1: FOR P = 0 TO 40: GOSUB 3200: NEXT :
NEXT : GOSUB 3210: RETURN
Checksum del listato 2
NOME FILE:
SUPER.SHOPPER.DOS
TIPO: A
LUNGHEZZA:
2774
CHECKSUM :
6 C
64
mile al catalogo del DOS, e in un
programma convertito è probabile
che dobbiate cambiare i CATALOG
in CAT.
IN# e PR# - A questi due co¬
mandi è stato dato un nuovo messag¬
gio d'errore con cui giocare: DEVI-
CE NOT CONNECTED (dispositi¬
vo non collegato). Questo significa
che i programmi che si rivolgono a
dispositivi periferici (stampanti,
schede 80 colonne e così via) posso¬
no individuare se nell'Apple è inseri¬
ta una scheda d'interfaccia. Ne sono
un esempio le linee 1320-1370 del
listato 1.
CHAIN - In DOS per concatena¬
re un programma con un altro dove¬
vate ricorrere a uno speciale program¬
ma di utilità.
In ProDOS vi basta emettere il co¬
mando come fareste con un "RUN
nomefile", e il nuovo programma si
sovrapporrà a quello vecchio, con
tutte le variabili intatte.
Potete persino specificare il nume¬
ro di linea da cui cominciare a ese¬
guire il programma concatenato, u-
sando il nuovo parametro di simbo¬
lo "@ M .
Per esempio:
200 PRINT CHR$(4) "CHAIN PAR
T2,@50"_
conserva tutte le variabili correnti,
carica il programma PART2 e co¬
mincia l’esecuzione a linea 50. Se
non c’è linea 50 il ProDOS usa la
prossima linea disponibile.
I comandi dei file di testo
- Ci sono stati molti cambiamenti
nei comandi dei file di testo, ma
quelli più suscettibili di avere un im¬
patto sulle vostre conversioni di pro¬
grammi sono i comandi concernenti
il modo in cui sono gestiti i file a-
perti. Il ProDOS, per esempio, gene¬
ra un messaggio d'errore se il vostro
programma finisce e ci sono ancora
file aperti. Inoltre il ProDOS è mol¬
to più pignolo su ciò che potete fa¬
re per aprire i file. Per esempio non
potete eliminare con DELETE un fi¬
le aperto. E non funzionerà il vec¬
chio trucco del DOS, di assicurarvi
che state scrivendo in un nuovo file
facendo OPEN-DELETE-OPEN-
WRITE. I vostri sforzi avranno co¬
me risultato un messaggio d'errore
FILE BUSY (file occupato). Dovete
usare la sequenza OPEN-CLOSE-
DELETE-OPEN-WRITE.
C'è un problema analogo per i file
EXEC. In DOS potevate fermare l'E-
XEC dall'interno di un programma
con un CLOSE. In ProDOS un file
che viene eseguito da un program¬
ma rimane attivo fino a quando o il
programma termina o fa qualcosa
per prelevare un carattere di troppo
dal file EXEC, causando un errore.
Ricordate che quando un file EXEC
è attivo qualsiasi INPUT o GET in
un programma aggira la tastiera e
prende il suo input dal file EXEC a-
perto. Non potete comunicare con il
vostro programma fino a quando il
file EXEC sarà inattivo. E' questo
un problema che a quanto pare non
ha alcuna soluzione elegante, se non
quella di evitare di fare l'EXEC dei
file dall'interno dei programmi.
Modifiche ai
codici di errore
Per quanto l'Apple abbia fatto di
tutto per mantenere identici a quelli
del DOS i codici d'errore che ricavate
da un PEEK(222) è stata necessaria
qualche modifica.
In linea generale può darsi che sia¬
no necessari alcuni piccoli cambia-
Anche 1.000.000 di sconto
a professori e studenti.
Fino al 29 agosto, i professori e gli
studenti delFultimo anno di scuola
media superiore, i docenti e gli
allievi dell’università, possono
aderire al programma "Apple per la
Scuola Italiana". Tutti i prodotti, il
software, gli sconti, gli speciali
finanziamenti, vi attendono da:
Apple Center
c.e. Communications engineering s.r.l.
Piazza Firenze, 4 - 20154 MILANO - Tel. 02/3182122
•/••• ■ ■- ■ ' • - ■ ••••.
Apple e il marchio Apple sono marchi registrati della Apple Computer Ine.
Tavola 2. Lista d'impiego delle variabili
Variabile
Funzione
A
Impiego generale
A$
Impiego generale
AN$
Modo programma
B
Impiego generale
B$
Impiego generale
C
Categoria corrente (0-39)
CLM
Numero delle colonne del tabulato
CTG
Numero delle categorie usate (0-40)
D$
Variabile = CHFt*(4)
F$
Variabile = nome file dati
HC
HTAB corrente per la lista categorie
HP
HTAB corrente per la lista prodotti
HT
Costante per il controllo tab stampante (=36)
NP
Numero dei prodotti nell'ultima lista stampata sullo schermo
P
Prodotto corrente (0-40) (0 = nome categoria)
PI 32$
Codice controllo stampante 132 colonne
P80$
Codice controllo stampante 80 colonne
PCS
Codice controllo stampante per evidenziare nome categoria
PFF$
Codice controllo per avanzamento modulo
PINIT$
Stringa inizializzazione stampante
PN$
Codice controllo stampante per stampa normale
PR%()
Puntatore di matrice (usato nella stampa)
PSLOT
Numero slot della stampante
P$()
Matrice nomi prodotto (39,40)
P%()
Matrice marcatori prodotto (39,40)
ve
VTAB corrente per la lista categorie
VP
VTAB corrente per la lista prodotti
menti se fate qualche intrappolamen-
to ONERR. Altrimenti non c’è pro¬
blema.
Il ProDOS offre qualche nuovo co¬
mando e altri potenziamenti dei co¬
mandi esistenti. Per amor di brevità
qui non vengono presentati tutti, ma
solo quelli che hanno qualche rifles¬
so sul funzionamento in ProDOS
del vostro programma in DOS. Per
avere altre informazioni consultate
la rubrica Applihelp su Applicando
n.17 a pag.88.
I cambiamenti
in Applesoft
Oltre a modificare i comandi DOS
il ProDOS ha cambiato anche il mo¬
do in cui funzionano alcuni dei co¬
mandi dell'Applesoft:
HIMEM - Questo comando era
ed è usato soprattutto per proteggere
le routine in linguaggio macchina
dalla sovrascrittura in memoria. Pur¬
troppo il metodo è interamente diver¬
so in ProDOS. E’ meglio rimuovere
dal vostro programma gli eventuali
HIMEM. Se vi occorre spazio per le
routine consultate più sopra il para¬
grafo sull’uso della memoria.
X=FRE(0) - Rimane un coman¬
do valido dell'Applesoft, e funziona
esattamente come prima. Il guaio è
che è di una lentezza glaciale! Il Pro¬
DOS provvede automaticamente a u-
na garbage collection molto veloce,
e quindi potrete probabilmente to¬
gliere da un programma che state
convertendo le eventuali istruzioni
FRE(O). Se per qualche ragione vole¬
te forzare la garbage collection usa¬
te il comando PRINT CHR$(4)
"ERE".
Per controllare quanta memoria li¬
bera vi rimanga fate:
PRINT CHR$(4)’’FRE":X=(PEEK
(111)+PEEK(112)*256)-(PEEK
E’ molto, molto più veloce.
TRACE e NOTRACE - H
DOS soffocherebbe con questi due
messaggi, e farebbe cose strane se a-
priste i file di testo mentre TRACE
è attivo.
Il ProDOS è stato in gran parte
guarito di questi problemi.
I pericoli
del ProDOS
Ci sono alcune cose da cui guardar¬
vi quando convertite in ProDOS i
vostri programmi. La più seria è che
l'interprete Basic fornito con il Pro¬
DOS 1.1.1 ha un difetto di funziona¬
mento che causa l'attivazione del mo¬
do TRACE se trova una linea con
un IF-THEN seguito da un'istruzio¬
ne FLASH, NORMAL, INVERSE,
TRACE o NOTRACE. La soluzio¬
ne consiste nel mettere un segno di
due punti fra il THEN e l'istruzione
seguente.
Un altro fenomeno che lascia per¬
plessi è l'improvvisa sparizione del¬
le variabili, senza preavviso. Non si
tratta di un difetto di funzionamento,
ma di una caratteristica non docu¬
mentata.
Premendo <RESET>, per esem¬
pio, si cancellano le variabili. Inol¬
tre se siete in Monitor e tornate al
Basic con il consueto 3D0G le vo¬
stre variabili saranno cancellate. E'
probabilmente più sicuro seguire la
via <CTRL>C <RETURN> per tor¬
nare dal Monitor al Basic.
Il ProDOS Versione 1.1.1 ha an¬
che un nuovo comando, che dev'esse¬
re ancora documentato. E' il coman¬
do BYE, che viene utilizzato per u-
scire dall'interprete Basic e far girare
un programma di altro sistema.
Quando viene eseguito BYE vengo¬
no visualizzati i prompt che sono u-
sati per uscire dai programmi FI-
LER o CONVERT, e che vi chiedo¬
no il prefix e il nome di file della
prossima applicazione. Questo co¬
mando rende possibile modificare la
linea 3140 di Super Shopper in mo¬
do che finisca con un BYE, portando
così senza intoppi alla successiva ap¬
plicazione.
f “ \
Questo programma è disponibile
su dischetto. L’elenco, i prezzi
e le modalità d’ordine di questo
e degli altri dischetti disponibili
sono riportati nella rubrica
Disk Service.
^_ J
© By Nibble e Applicando
66
Lo spirito deduttivo è l'arma con cui condurre questa fida al tiranno di Ra-
dion, in un avvincente gioco di strategia per Macintosh.
Dentro la reggia
e dietro tante porte
Un pallido puntino di luce brilla
per un istante nell'opprimente cielo
che sovrasta i possedimenti imperia¬
li. Il mercante Breothiano sta ripar¬
tendo per una missione su un piane¬
ta straniero. Ti sembra di sentire il
pulsare dei suoi motori quando l’a¬
stronave lascia l'orbita di Radion. U-
na folata di nostalgia affiora sulle on¬
de di un vinaccio da quattro soldi.
Questo è il destino di tutti gli amba¬
sciatori, pensi soffocando l'impulso
di lamentarti. L'astronave scompare,
e con lei se ne va il Capitano Men-
teur e la sua ciurma.
Ambasciatore! Come avresti potu¬
to saperlo quando hai firmato per
questo lavoro? Promosso da Appren¬
dista musicista di terza classe ad Am¬
basciatore su Radion, con un sorriso
e una pacca sulla spalla dal Capita¬
no. Un attimo prima stavi suonan¬
do la chitarra nel cortile della caser¬
ma, e due ore dopo eri nel castello
imperiale, sede della Corporazione
intergalattica dei mercanti e dei ban¬
chieri, valigie alla mano.
Ambasciatore su Radion... ovun¬
que possa essere Radion.
Una fitta nelle spalle ti scuote dai
sogni di gloria. Un'altra puntura. Ti
volti con fare battagliero. Dietro di
te, di fronte a una co- ^
struzione che sembra
una sputacchiera se¬
midistrutta, si trova
un tritone deforme.
Ha con sè un lucci
r~
a
li
il
E
□□□□□□□□□□□□□□□
□□□□□□□□□□□□□□□
czs □□□□□□□□□□□□ tu
□ □□□□□□□□□□□□□
□□I__
cante scudo cristallino e un'affilatis¬
sima alabarda. Cerchi di prendere il
tuo Ultralator per decifrare i borbot¬
tìi della lucertola, ma il tritone ti fa
segno di proseguire agitando l'alabar¬
da. Non c'è bisogno del traduttore,
é Rrchiuio Griglio Guardie Gioco Soluzione
GRIGLIA RfìDION
GRIGLIR TEST
©
©
©
©
©
©
□
©
*
Figura 1. La griglia di gioco e la griglia per gli appunti.
capisci benissi¬
mo: ti ordina di
passare attraverso
r uno stretto passaggio.
Come farebbe ogni
buon Ambasciatore tralasci le anghe¬
rie per un trattamento così barbaro,
con un senso di superiorità verso
quel bambinesco selvaggio. Appena
oltrepassi il cancello senti la porta
sbattere alle tue spalle. Ti trovi in
una grande stanza, dalle pareti e dal
soffitto ricoperti di specchi. Al cen¬
tro del locale c'è un'immensa costru¬
zione intarsiata di passaggi. Dietro
le pareti senti un borbottio sommes¬
so. Ti volti e noti un sottile fogliet¬
to di carta appeso a un muro.
Lo leggi: " Benvenuto nella sala-
giochi del Tiranno di Radion. Lo
scopo del gioco è trovare le guardie
nascoste alTinterno della costruzione
nera. Se le trovi tutte hai vinto, altri¬
menti hai perso. Oppure , per rendere
più interessante il gioco: vinci e ri¬
marrai in vita, perdi e ti lasceremo
in pasto alla folla qui fuori... Qual-
67
cosa in più di una sfida!" Inghiottì
in fretta l'ultimo sorso di vino. Sì,
dovrai farcela, dovrai vincere, e atten¬
dere in questo inferno affollato di tri¬
toni il ritorno dell'astronave Breotha-
na... Per digitare il listato del pro¬
gramma, caricate un disco con la ver¬
sione binaria o decimale del Microso¬
ft Basic 2.0 o 2.1, fate due volte cli¬
ck sull'icona del Basic. Apparsa la fi¬
nestra di List, battete il programma
del listato 1 e salvatelo con il no¬
me che preferite.
Listato 1. Radion Tyrant
' Radion Tyrant by Duff Caldewey
' ©1986 Applicando & Microsparc. Ine.
' Microsoft BASIC 2.0 e 2.1 (binario)
CLS
CLEAR , 27000
WINDOW CLOSE 1
DEFINT a-z
ON MENU GOSUB getMenu
' Dimensiona le matrici
DIM gray(3), last It em (5 ) , grid(2,9,9), watch(33)
DIM guard(17), zap(17), bounce(17), miss(17) / inGrid(17), outGri •
d (17)
DIM title$ (2)
Alcune righe del listato sono
state spezzate per esigenze di
impagmazione:
quando incontrate il simbolo •
continuate a battere SENZA
PREMERE <return>
Come si gioca
a Radion Tyrant
' Legge i dati per il cursore a orologio
RESTORE 10
FOR j = 0 TO 33 : READ watch ( j) :NEXT
CALL SETCURSOR(VARPTR(watch(0)))
All’inizio della partita vi verranno
presentate due griglie di 8 x 8 quadra¬
ti, una barra dei menù e cinque me¬
nù. La griglia nera, sulla sinistra, in¬
titolata Griglia Radion, è la rappre¬
sentazione bidimensionale dell'edifi¬
cio nero. La griglia bianca sulla de¬
stra è la Griglia Test. Entrambe le
griglie sono circondate da quadrati di
richiesta. Il gioco vero e proprio si e-
segue sulla Griglia Radion, mentre
la Griglia Test è una specie di bloc¬
co per appunti che vi servirà per vi-
' Inizializza le finestre
WINDOW 2 /'Griglia di test",(260,50)-(490,300),4
WINDOW 1, , (10,50)-(240, 300),4
WINDOW OUTPUT 1
title$(l)="GRIGLIA RADION"
title$(2)“"GRIGLIA TEST"
' Inizializza le pedine
FOR j =0 TO 17 : READ zap(j):NEXT
FOR j=0 TO 17:READ bounce(j):NEXT
FOR j=0 TO 17 : READ guard(j) :NEXT
FOR j=0 TO 17-.READ inGr id ( j ) : NEXT
FOR j“0 TO 17 : READ outGrid(j) :NEXT
FOR j = 0 TO 3
gray(j) = -21931
NEXT
Tavola 1. Descrizione del programma
ROUTINE DI INIZIALIZZAZIONE.
Crea spazio neltheap per PMBasic, rimuove la finestra inizia¬
le, inizializza il controllo dei menù, le matrici, legge i dati per
le icone e i segnalini.
ROUTINE GENERICHE
ChicagoFont: seleziona come fonte per la stampa Chi¬
cago.
MonacoFont: seleziona come fonte per la stampa Mo¬
naco.
ROUTINE PER IL CONTROLLO DEGLI EVENTI.
Controllano l'attivazione della griglia di Test o della griglia
Radion, nelle rispettive finestre. Le altre funzioni del control¬
lo di eventi sono inattive, e sono state incluse nel listato per
uniformità strutturale.
ButtonEvent: non usata.
EditEvent: non usata.
ActivateEvent: controlla se una finestra è stata attivata
e passa a essa la stampa delle informazioni.
GoAwayEvent: non usata.
UpdateÉvent: non usata.
ActivateWindow: determina se una finestra da attivare è
nuova (attraverso una chiamata a DIALOG(3)) e nel caso ve¬
rifica se si tratta di una finestra attiva (cioè se il programma
è in modo gioco o in modo soluzione) e se lo è toglie l'eviden-
ziamento alla finestra precedente e evidenzia quella nuova,
con la routine drawLines. La nuova finestra è attivata con il
comando WINDOW windowID. Per trasferire l'uscita alla nuo¬
va finestra si opera con WINDOW OUTPUT windowID.
SUBROUTINE PER IL CONTROLLO DEI MENU'.
Verificano le interruzioni all'esecuzione forzate da interventi
sulla barra dei menù. Se avvengono si eseguono le azioni ne¬
cessarie con un GOSUB o un GOTO alle subroutine corri¬
spondenti.
GetMenu: determina quale menù è stato selezionato e qua¬
le comando all'interno di esso è stato scelto. L'esecuzione
del programma è modificata con il comando ON MENU'. Se la
selezione eseguita nel menù modifica lo svolgimento del gio¬
co, viene posto di fianco alla voce nel menù il segno di spun¬
ta con il comando (MENU', menuID, itemlD,2).
FileMenu: offre la possibilità di ripetere il gioco o di tornare
al Finder.
GridMenu: attiva le finestre per le due griglie.
GuardMenu: seleziona il numero di guardie da posiziona¬
re, quattro o cinque.
GameMenu: seleziona la modalità di gioco, problema o ca¬
suale. Se viene scelto un problema allora vengono poste nel¬
la griglia solo quattro guardie e si disattiva la voce Cinque
guardie nel menù corrispondente.
SolutionMenu: l’esecuzione del programma è trasferita al¬
le routine che controllano la rispettiva fase di gioco.
ROUTINE PER IL CONTROLLO DEL MOUSE.
I movimenti del puntatore sul video e le azioni corrispondenti
alla pressione del bottone non sono controllate dalle routine
DIALOG. La funzione delle routine per il mouse è principal¬
mente di determinare se è stata compiuta una richiesta ac¬
cettabile sparando un raggio nella griglia. Successivamente
le routine trackGuard e putGuard posizionano le pedine delle
guardie e annotano la posizione nel vettore a loro riservato
grid(x,y,z).
PlotMouse: annota la posizione del cursore e attende fin¬
ché il bottone è rilasciato.
GridStuff: controlla la posizione del cursore per vedere se
A) si vuole posizionare una guardia in una griglia oppure B) si
vuole sparare un raggio. In entrambi i casi controlla che il cur¬
sore sia nei limiti della griglia, in caso negativo il controllo tor¬
na al menù principale.
68
GOSUB newGame
GOTO ma in
chicagoFont:
TEXTFONT(0)
TEXTSIZE(12)
RETURN
monacoFont:
TEXTFONT(3)
TEXTSIZE(9)
RETURN
buttonEvent:
RETURN
editEvent:
RETURN
aetivateEvent:
windowID=DIALOG(3)
GOSUB aetivateWindow
RETURN
goAwayEvent:
RETURN
updateEvent:
RETURN
aetivateWindow:
IF lastT=0 THEN T$=title$(l)
s:RETURN
IF lastT=windowID OR solve=l
WINDOW OUTPUT windowID
WINDOW windowID
MENU 2,lastT,1
MENU 2, windowID,2
w=lastT
GOSUB drawLines
w=windowID
lastT = windowID
GOSUB drawLines
RETURN
drawLines:
:lastT=l:w=lastT:GOSUB drawLine •
THEN RETURN
(Continua)
sualizzare quello che accade durante
la partita (figura 1). Cinque menù
controllano tutte le fasi del gioco.
1. Menù Archivio. Potete sce¬
gliere Nuova partita per iniziare un
nuovo gioco, o Esci per tornare alla
scrivania.
2. Menù Griglia. Attiva la gri¬
glia Radion o la griglia Test.
3. Menù Guardie. Permette di
scegliere un gioco con quattro o cin¬
que guardie. Inizialmente ne sono se¬
lezionate quattro.
4. Menù Gioco. Potete sceglie¬
re di avere delle guardie piazzate a
caso, oppure secondo una delle ses¬
santa combinazioni memorizzate
(Problema). Inizialmente il gioco è
predisposto per giocare con le posi¬
zioni programmate, che sono, come
suggerisce il nome dell’opzione, ab¬
bastanza complesse. Si fanno però
più chiare a mano a mano che il gio¬
co procede. Giocando con i problemi
si posizionano nella griglia sempre
quattro guardie.
5. Menù Soluzioni. Quando
pensate di sapere dove sono le guar¬
die scegliete Tentativo nel menù So¬
luzioni. Per indicare dove ritenete
SUBROUTINE PER IL PIAZZAMENTO DELLE
GUARDIE
TrackGuard: determina quale matrice deve essere usata
per memorizzare la posizione di una guardia.
PutGuard: piazza le pedine delle guardie nella griglia.
SUBROUTINE DI TEST.
Controllano il percorso del laser aH'interno della griglia dal
punto di ingresso al punto di uscita. Determinato il percorso
posizionano le pedine nelle appropriate caselle.
TopCheck: predispone i parametri per tracciare un raggio
che parte dalle caselle sul bordo superiore o inferiore.
CheckTPath: controlla la presenza di ostacoli sul percor¬
so verticale.
CheckTBorder: controlla se una guardia ostruisce un in¬
gresso della griglia, in caso di un raggio sparato vertical¬
mente.
SideCheck: predispone i parametri per tracciare un raggio
sparato lateralmente.
CheckSPath: controlla la presenza di ostacoli sul percor¬
so orizzontale.
CheckTBorder: controlla se una guardia ostruisce un in¬
gresso della griglia, in caso di raggio sparato orizzontal¬
mente.
ROUTINE DI POSIZIONAMENTO DELLE PEDINE
PutToken: determina, controllando l'esito di uno sparo, lo
stato del gioco, la finestra attiva nella quale devono essere
posizionate le pedine.
PutRGrid: posiziona le pedine in modo PSET o Copy.
PutTGrid: posiziona le pedine con un XOR (fondo nero pe¬
dinabianca).
ClearToken: cancella le pedine presenti scrivendo su di
esse con un XOR, chiamando le subroutine ClearZap, Clear-
Bounce e ClearMiss.
GetMiss: carica le pedine nella matrice relativa, leggendo
le informazioni contenute alla linea 20 dei DATA.
LOOP PRINCIPALE. L'unico comando che gestisce gli
interrupt usato è ON MENU', poi la routine principale control¬
la eventuali DIALOG e chiama le subroutine corrispondenti.
Main:
CheckMouse: trasferisce l'esecuzione a PlotMouse se è
stata eseguita un'azione con il mouse.
CheckDialog : controllo e chiamata di altre subroutine.
ROUTINE PER I PARAMETRI DI GIOCO
NewGame: riporta i menù alla condizione iniziale, cancella
le finestre e ritraccia le griglie con DrawGrid, poi riposiziona
i flag di gioco.
SetGame: inizializza una partita leggendo i dati alla linea
30 se si è scelto un problema (setPuzzle), o sistemando ca¬
sualmente le guardie (setRandom).
FirstShot: disattiva i menù Guardie e Gioco, attiva nel me¬
nù Soluzioni le voci Tentativo e Mi arrendo... dopo che il pri¬
mo colpo è stato sparato.
ROUTINE DI DIALOGO
ClearWindow: trasforma la griglia di test in un box di dia¬
logo.
ShotOut: tutte le pedine per i colpi a vuoto sono state usa¬
te. Termina il gioco.
ShowSolution: sistema le guardie con un PUT nella loro
posizione fisica, in corrispondenza con la loro posizione lo¬
gica (in PSET o in Copy), poi termina il gioco.
GuessSolution: azzera il flag di soluzione, così che le
guardie possano essere tracciate aH’interno della Griglia Ra¬
dion (in grid(0,x,y)). Apre la finestra n. 3 e scrive un mes¬
saggio che indica il cambiamento nella modalità di gioco.
ScoreGame: confronta grid(0,x,y) con arid(1,x,yV Conta
i colpi sparati, le guardie trovate e i colpi. Elabora il punteg¬
gio ottenuto e lo mostra nella rispettiva finestra.
DATI
Linea 10: dati per il cursore, l'orologio, i colpi, i rimbalzi, le
guardie, il segno di raggio in ingresso e in uscita.
Linea 20: dati per le sedici pedine di colpi a vuoto.
Linea 30: dati per i problemi.
69
Interludio
Grafica Interattiva
per APPLE e
DEC prò
v. Borgo Melano 27
51100 Pistoia
tei. (0573)
31307-8
WINDOW OUTPUT w
PENMODE(10)
FOR j = 3 TO 13 STEP 2
CALL MOVETO (l,j)
CALL LINETO (115-( (LEN (title$(w))/2)*8),j)
CALL MOVE ((LEN(title$(w)))*8,0)
CALL LINETO (228,j)
NEXT
RETURN
*
getMenu:
menuID = MENU(0)
which = MENU(1)
MENU menuID,0,1 'toglie evidenziamento
MENU menuID,lastItem(menuID),1
IF menuID > 2 AND menuID < 5 THEN MENU menuID,which,2
lastItem(menuID) = which
ON menuID GOTO fileMenu, gridMenu, guardMenu, gameMenu, solu •
tionMenu
RETURN main
fileMenu:
IF which = 1 THEN done = 0:GOTO newGame 'nuovo gioco
IF which = 2 THEN END 'basic
IF which = 3 THEN SYSTEM 'scrivania
gridMenu:
windowID = which
GOSUB activateWindow
guardMenu:
guards = which + 3
GOSUB setGame
RETURN main
gameMenu:
puzzle = which
IF puzzle = 1 THEN MENU 3,2,0 ELSE MENU 3,2,1
guards = 4
MENU 3,1,2
GOSUB setGame
RETURN main
solutionMenu:
IF which = 1 THEN guessSolution
IF which = 2 THEN showSolution
IF which = 3 THEN scoreGame
RETURN main
plotMouse:
IF done = 1 THEN RETURN
w = WINDOW(1)
IF MOUSE(0) = -1 THEN plotMouse
gridStuff:
mi = MOUSE(1)
m2 = MOUSE(2)
token = 0
bCheck = 0
q - INT((ml-15)/20)
r = INT((m2-30)/20)
x=q:y=r
IF (w=2 OR solve=l) AND (q=>l AND q=<8 AND r=>l AND r=<8) T •
HEN trackGuard
IF r = 9 OR q = 9 THEN incNo = -1 ELSE incNo = 1
IF (q=0 OR q=9) AND (r > 0 AND r < 9) THEN sideCheck
IF (r=0 OR r=9) AND (q > 0 AND q < 9) THEN topCheck
RETURN
trackGuard: ' Posiziona le guardie nella griglia di test
IF solve - 0 AND iPass = 1 THEN GOSUB clearToken
IF solve = 0 THEN LET grid(2,q,r) = ABS(grid(2,q,r) - 1)
IF solve = 1 THEN LET grid(0,q,r) = ABS(grid(0,q,r)-1)
putGuard:
1 = 17 + (q * 20)
T - 33 + (r * 20)
PUT (1,T),guard
RETURN
topCheck:
hit = 0
IF x <1 OR x > 8 THEN RETURN
y = y + incNo
GOSUB checkTPath
IF token > 0 THEN putToken
IF hit = 3 THEN LET y = y - incNo:incNo = incNo * -l:GOTO si •
deCheck
IF hit = 4 THEN LET y = y - incNo:GOTO sideCheck
GOTO topCheck
checkTPath:
IF (y=0) OR (y=9) THEN LET token = 3:RETURN
IF grid(w,x,y) = 1 THEN LET token = 1:RETURN
IF grid(w,x+incNo,y) = 1 THEN LET hit = 3
IF grid(w,x-incNo,y) = 1 THEN LET hit - 4
IF grid(w,x+1,y) = 1 AND grid (w,x-1,y) = 1 THEN token = 2
IF bCheck = 0 THEN checkTBorder
RETURN
checkTBorder:
70
bCheck = 1
IF grid(w,q-1,r+incNo)=1 OR grid (w,q+1,r+incNo)=1 THEN token •
- 2
RETURN
sideCheck:
hit = 0
IF y < 1 OR y > 8 THEN RETURN
x = x + incNo
GOSUB checkSPath
IF token > 0 THEN putToken
IF hit = 3 THEN LET x = x - incNo:incNo - incNo * -l:GOTO to •
pCheck
IF hit = 4 THEN LET x = x - incNo:GOTO topCheck
GOTO sideCheck
checkSPath:
IF (x=0) OR (x=9) THEN token = 3: RETURN
IF grid(w,x,y) = 1 THEN token = 1:RETURN
IF grid(w,x,y+incNo) = 1 THEN LET hit = 3
IF grid(w,x,y-incNo) = 1 THEN LET hit * 4
IF grid(w,x,y+1) = 1 AND grid (w,x,y-1) = 1 THEN token = 2
IF bCheck = 0 THEN checkSBorder
RETURN
checkSBorder:
bCheck = 1
IF grid(w,q+incNo,r+1) =1 OR grid (w, q+incNo, r-1 ) =1 THEN token •
= 2
RETURN
putToken:
IF w = 1 AND fFlag = 0 THEN GOSUB FirstShot
IF w = 1 AND iPass = 1 THEN GOSUB clearToken:WINDOW OUTPUT 1
IF w = 2 AND iPass = 1 THEN GOSUB clearToken
1 - 17 + (q * 20)
T = 33 + (r * 20)
ON w GOSUB putRGrid, putTGrid
IF token < 3 THEN RETURN
1 = 17 + (x * 20)
T = 33 + (y * 20)
IF w - 1 THEN PUT (1, T),miss,PSET
IF w = 2 THEN LET oL - l:oT - T:PUT (1,T),outGrid
RETURN
putRGrid:
shots = shots + 1
IF token - 1 THEN PUT (1,T),zap,PSET
IF token = 2 THEN PUT (1, T),bounce,PSET
IF token = 3 THEN GOSUB getMiss:PUT (1,T),miss,PSET
RETURN
putTGrid:
iL = l:iT = T:iPass =
IF token = 1 THEN PUT
IF token = 2 THEN PUT
IF token = 3 THEN PUT
RETURN
l:iToken = token
(1/T),zap
(1, T),bounce
(1, T),inGrid
clearToken:
WINDOW OUTPUT 2
iPass = 0
ON iToken GOTO clearZap, clearBounce, clearMiss
clearZap:
PUT (iL,iT),zap
RETURN
clearBounce:
PUT (iL,iT),bounce
RETURN
clearMiss:
PUT (iL,iT),inGrid
PUT (oL,oT),outGrid
RETURN
getMiss:
FOR j = 0 TO 17
READ miss ( j)
NEXT
mCount = mCount + 1
IF mCount > 16 THEN GOSUB shotOut: RETURN main
RETURN
main :
CALL INITCURSOR
w - WINDOW(0)
WINDOW OUTPUT w
checkMouse:
event = DIALOG(O)
IF event = 3 THEN checkDialog
IF event = 0 AND MOUSE(0) = -1 THEN GOSUB plotMouse
GOTO main
checkDialog:
ON event GOSUB buttonEvent, editEvent, activateEvent, goAway •
Event, updateEvent
goto main (Continua)
(a)
«
(b)
□ ftif.
tjjl
B
(c)
Figura 2. Tre possibili esiti di un tiro:
riuscito (a), a vuoto (b), riflesso (c).
possano essere fate click sul quadra¬
tino corrispondente nella Griglia Ra-
dion, poi scegliete Punti nello stes¬
so menù per avere il punteggio.
In qualsiasi momento, dopo aver
fatto il primo test, potete scegliere
Mi arrendo nel menù Soluzioni per
vedere dove sono effettivamente le
guardie. Queste appaiono in bianco
nella griglia Radion, e il gioco ter¬
mina.
Il giocò inizia quando sparate il
primo raggio laser da uno dei punti
di ingresso situati sui bordi della gri¬
glia. A mano a mano che la partita
71
■i
procede, diversi menù e comandi
vengono disattivati: saranno disponi¬
bili solo iniziando un nuovo gioco.
Come è possibile
individuare le guardie
La premessa per compiere le neces¬
sarie deduzioni è che voi siate rima¬
sti fuori dalla costruzione nera, timo¬
rosi di quello che potrebbe succedere
al suo interno: le intenzioni delle
guardie potrebbero essere poco genti¬
li. Per determinare la posizione di u-
na guardia sparate un raggio laser in
uno degli ingressi e annotate la posi¬
zione da cui riemerge.
Gli scudi cristallini delle guardie
hanno la proprietà di catturare ogni
sorgente luminosa che li colpisca di¬
rettamente (figura 2a) e possono
deviare un raggio che passi accanto a
loro (figura 2b). Un raggio è sem¬
pre deviato di novanta gradi, a meno
che non colpisca un secondo scudo a -
diacente (per esempio se le due guar¬
die fossero una di fronte all'altra nel¬
la figura 2a, il raggio sarebbe devia¬
to). Oltre a essere deviato o assorbi¬
to, il percorso del raggio può subire
una terza modificazione, cioè tornare
al punto di ingresso. 11 ritorno si ve¬
rifica quando:
• le guardie sono situate in maniera
tale da non consentire la deviazione
del raggio ad angolo retto rispetto a
entrambe le guardie, oppure quando:
• un raggio è sparato da un punto di
ingresso prossimo a una guardia si¬
tuata sul bordo della griglia (figura
2c).
In entrambi i casi il raggio non ha
modo di sfuggire e toma al punto di
ingresso.
In breve ci sono tre possibilità:
1. Colpito: un raggio diretto su uno
scudo (2a).
2. Mancato: il raggio viene deviato
o passa semplicemente da un'estre¬
mità alfaltra della griglia (2b).
3. Riflesso: il raggio non può essere
deviato ad angolo retto da uno scudo
e quindi toma su se stesso.
Poiché non potete vedere quello
che accade al raggio mentre attraver¬
sa la griglia Radion, dovete dedurre
la posizione delle guardie annotando
la posizione di entrata e quella di u-
scita. Per aiutarvi in questo compi¬
to, il programma dispone di tre tipi
di pedine (figura 3): segnalimi che
indicano i colpi a segno, quelli rifles¬
si e (sedici tipi differenti!) quelli a
vuoto.
newGame:
FOR j = 2 TO 4
lastltem(j) = 1
NEXT
IF dFlag = 1 THEN GOSUB clearWindow
' Initial menu
MENU OFF
MENU 1,0,1,"Archivio"
MENU 2,0,1, "Grigiia"
MENU 3,0,1,"Guardie"
MENU 4,0,1,"Gioco"
MENU 5,0,1,"Soluzione"
MENU 1,1,1,"Nuovo gioco "
MENU 1,2, 1, "Esci—>BASIC"
MENU 1,3,1, "Esci—Scrivania"
MENU 2,1,2,"Griglia Radion"
MENU 2,2,1,"Griglia Test"
MENU 3,1,2,"Quattro Guardie"
MENU 3,2,0,"Cinque Guardie"
MENU 4,1,2 ,"Problema"
MENU 4,2,1, "A caso..."
MENU 5,1,0, "Tentativo..."
MENU 5, 2,0, "Mi arrendo... "
MENU 5,3,0,"Punteggio"
MENU ON
lastT=0
FOR j = 1 TO 2
WINDOW OUTPUT j
CLS
CALL MOVETO(122-((LEN(title$(j))/2)*8), 13)
GOSUB chicagoFont
PRINT title$ ( j)
LINE (0,17)- (250, 17)
NEXT
WINDOW OUTPUT 1
LINE (15,50)-(215,210),,bf
LINE (35, 30)-(195,230),,bf
PENPAT(VARPTR(gray(0)))
PENMODE(11)
GOSUB drawGrid
x(0)=50:x(1)=35:x(2)=211:x(3)=196
FRAMERECT(VARPTR(x(0)))
PENNORMAL
WINDOW OUTPUT 2
PENMODE(9)
LINE (15,50)-(215,210),,b
LINE (35, 30)-(195,230),,b
GOSUB drawGrid
lastT = 0
iPass = 0
fFlag = 0
done = 0
solve = 0
shots = 0
mCount = 0
puzzle = 1
guards = 4
GOSUB activateWindow
ERASE grid
DIM grid(2,9,9)
GOSUB setGame
WINDOW 1
WINDOW OUTPUT 1
RETURN
drawGrid:
FOR j = 70 TO 190 STEP 20
CALL MOVETO(15,j)
CALL LINETO(215, j)
CALL MOVETO(j-15,30)
CALL LINETO(j-15, 230)
NEXT
PUT (15,30),guard
PUT (198,30),guard
PUT (15,214),guard
PUT (198,214),guard
RETURN
setGame:
ERASE grid
DIM grid (2,9,9)
RANDOMIZE TIMER
IF puzzle = 1 THEN setPuzzle
setRandom:
FOR j = 1 TO guards
q = INT (RND*8) + 1
r = INT(RND*8) + 1
IF grid(1,q,r) = 0 THEN LET grid(l,q,r) = 1 ELSE LET j = •
j - 1
72
NEXT
RETURN
setPuzzle:
SETCURSOR(VARPTR(watch(0) ) >
RESTORE 30
j = INT(RND*60) + 1
IF j = lastNo THEN setPuzzle
lastNo = j
FOR x = 1 TO lastNo
FOR y=l TO 8
READ q
NEXT
NEXT
FOR j - 1 TO 4
READ q
READ r
grid(l,q,r) = 1
NEXT
RESTORE 20
RETURN
FirstShot:
MENU 5,1,1
MENU 5,2,1
MENU 3,0,0
MENU 4,0,0
fFlag = 1
RETURN
clearWindow:
IF dFlag = 0 THEN clearTwo
dFlag = 0
WINDOW CLOSE 3
clearTwo:
WINDOW 2
WINDOW OUTPUT 2
GOSUB chicagoFont
CLS
RETURN
shotOut:
GOSUB clearWindow
BEEP
CALL MOVETO (65,20)
PRINT "Munizioni terminate!!!"
m
= Guardia
»
= Colpo riuscito
È
|n[.
= Colpo riflesso
(ni
V
16 differenti
= segnalini indicano
i colpi a vuoto
*i
Segnalini per i colpi
= a vuoto usati
41
nella griglia test
Figura 3. 1 segnalini per i colpi.
(Continua)
Tutto quello che dovete fare è pun¬
tare il quadrato da cui volete sparare
il raggio laser e fare click su di esso.
Macintosh determinerà cosa accade
al raggio, segnando il punto di in-
INFORMATICA BIELLA - ZANOTTO & BERNUZZO Srl
Apple Center
(g©gp làlaa
IMìilag EsCas
(g@03OB
[PoolMìasaa,
Per Apple II, Ile, Ile :
Contabilità Generale Prodos (Hard Disk, 3 m 1/2)
Contabilità Generale Dos ( 5" )
Contabilità Forfettaria ( Mono/Multiaziendale )
Parcellazione Studi Legali
Gestior? Parrocchie ( anche MS/DOS )
Gestione Alberghi
IP&33SÌ3&S [Mq wró tevifl
INFORMATICA BIELLA ZANOTTO & BERNUZZO Sii
P.za S. Paolo 1 - 13051 BIELLA
Tel. 015 - 24181 / 29875
MONFALCONE (GO)
Via S. Giacomo 30 - Tel. (0481) 44260
QUOTAZIONI SPECIALI
NOVEMBRE - DICEMBRE
Tutte le schede e periferiche per Apple! e
quando diciamo TUTTE significa che
disponiamo anche di quelle che non si trovano
sul mercato italiano!
Qualche esempio:
MODEM 300-600-1200 BAUD full
duplex con VIDEOTEL per collegarsi a
tutte le banche dati (pagine gialle elettroniche
comprese). Lire 300.000
SPECIALE PER MUSICISTI:
S&H scheda di campionamento
vocale e sonoro per la sintesi di qualsiasi
suono registrato con un microfono, completo
di batteria elettronica programmabile.
Lire 350.000
BETA SYNTAURI sistema musicale
POLIFONICO completo di tastiera
professionale a 5 ottave, 2 pedali di
espressione, 2 maxischede di sintesi,
REGISTRATORE DIGITALE A 16 PISTE
incorporato derivato da Alpha Syntauri®.
Lire 1.450.000
SPECIALE PER GRAFICI ,
ARCHITETTI, INGEGNERI:
C.A..D. sistema grafico
professionale per il disegno e la
progettazione assistita dal calcolatore,
composto da scheda 128 K RAM; joystick
professionale, software applicativo e manuale
in italiano. Derivato da ROBO 1500®.
Lire 980.000
Penna grafica per disegnare direttamente
su schermo video qualsiasi tipo di grafica,
ottima per COMPUTER ART. Completa di
software. Derivata da Gibson Light Pen®.
Lire 180.000
Tavoletta grafica formato B4 per
digitalizzare qualsiasi disegno o schema
elettrico, oppure per disegno a mano libera.
Completa di software e manuale italiano.
Lire 250.000
Joystick speciali per Apple 11+ con 2 trimmer
e 2 pulsanti. Lire 43.000
Driver Slim trazione diretta (i più affidabili)k
per Apple + e Ile). Lire 390.000
Mouse per Apple 11+ e Ile completo di
software grafico. Lire 145.000
FANTASTICO! Dischi per Apple 5"
utilizzabili sulle due facce 5 anni di
garanzia mod. NASHUA MD1. Lire 3.100
Foradischi utilissimo accessorio per
sfruttare la seconda faccia del dischetto.
Lire 12.900
PREZZI IVA COMPRESA
Inoltre: Schede di espansione di qualsiasi tipo,
Centronics, Seriali RS 232, CP/M,
Input/output, orologio, colore, 80 colonne ecc
RICHIEDETECI IL NOSTRO
CATALOGO GRATUITO
CON I PREZZI PROMOZIONALI
Attenzione! Tutti i nostri prodotti
sono garantiti con il sistema
della sostituzione immediata in
caso di guasto.
Per qualsiasi informazione tecnica siamo a
vostra disposizione al numero telefonico
(0481) 44260
Merce pronta consegna.
Accettiamo ordini telefonici
allo (0481) 44260.
Spedizione gratuita per importi superiori
a L. 90.000. Imballo gratuito.
PRINT
GOSUB monacoFont
PRINT " Agiti incredulo il tuo Laser EdiTron 512-R."
PRINT " 'Cielo! Me lo avevano garantito almeno per"
PRINT " 3.000 colpi! Disgraziati!', imprechi sconvolto."
PRINT:PRINT " Credo, a questo punto, tu possa scrivere"
PRINT " alla EdiTron e chiedere un rimborso... Ma prima"
PRINT " che tu riesca a trovare la penna, 10.000 Radion"
PRINT " ringhianti si lanciano su di te e ti riducono in"
PRINT " almeno 3.000 brandelli."
PRINT:PRINT " Peccato, avevi aVche la garanzia in tasca.."
MENU 5,0,0
MENU 2,0,0
GOSUB showSolution
RETURN
showSolution:
IF windowID = 2 AND iPass = 1 THEN GOSUB clearToken
IF windowID = 2 THEN windowID = l:GOSUB drawLines
WINDOW 1
WINDOW OUTPUT 1
FOR q = 1 TO 8
FOR r = 1 TO 8
IF grid (1,q,r) = 1 THEN LET l=17+(q * 20):T=33+(r * 20):
PUT ( 1,T),guard,PSET
NEXT
NEXT
MENU 2,0,0
MENU 5,0,0
done = 1
RETURN ma in
guessSolution:
MENU 5,3,1
MENU 5,1,0
solve = 1
dFlag = 1
WINDOW 3,, (260, 28)-(501,90),2
BEEP
GOSUB monacoFont
PRINT " Wow! Bravo il nostro Eroe Galattico: dammi"
PRINT " la tua soluzione! Ricorda che ora puoi guardare"
PRINT " la Griglia Test, ma non puoi più usarla!"
PRINT " La Forza sia con te...";
MENU 2,0,0
WINDOW 1
RETURN
scoreGame:
MENU 5,3,0
MENU 5,1,0
found = 0
score = 0
FOR x « 1 TO 8
FOR y = 1 TO 8
found = found + ABS(grid(0,x,y)+grid(1,x,y)=2)
NEXT
NEXT
score = (25*guards) - (40*(guards-found)) - ((2*shots)+(2*mC
ount))
IF score =< 0 THEN score = 10
IF score => 100 THEN score = 100
GOSUB clearWindow
BEEP
CALL MOVETO (63,18) :PRINT " •• PUNTI ••":PRINT
PRINT " C'erano";guards;" guardie. Ne hai"
PRINT " trovate";found;" sparando";shots;" colpi."
PRINT
PRINT:PRINT " Il tuo punteggio è ";:PRINT USING "###";score
PRINT
GOSUB monacoFont
IF score > 85 THEN goodStuff
IF score > 60 THEN niceStuff
IF score > 30 THEN niceTry
IF score > 0 THEN condolences
goodStuff:
PRINT " Congratulationi Tigre!!!"
PRINT " Sua maestà l'Imperatore Galattico ti"
PRINT " ha appena inviato una promozione, poi"
PRINT " ti ha risbattuto nel labirinto di Radion."
RETURN
niceStuff:
PRINT " Quanto basta per salvare la pelle. Grazie"
PRINT " ai tuoi sforzi verrai servito in tavola con"
PRINT " un contorno appetitoso, ma leggero."
RETURN
niceTry:
PRINT " Appena torni alla luce ti sorprendi"
PRINT " constatando quanto tempo hai impiegato."
PRINT " Prima che tu riesca a capire che ora"
PRINT " sei libero, 6 Radion gorgoglianti affilano"
•marchi registrati
PRINT "
RETURN
condolences:
PRINT "
PRINT "
PRINT "
PRINT "
RETURN
le loro asce sulla tua testa..."
Mmm.. sei andato vicino, topastro. Ma essere"
vicini ha importanza solo in una love story..."
Dalla tua preziosa pelle fanno 30 portafogli"
2 borsette e un paio di stivali."
10 ' ** Dati per orologio, raggi, riflessi, guardie, dentro, fuori
DATA 2016,2016,2016,2016,2064,4232,4232,4236
DATA 5004,4104,4104,2064,2016,2016,2016,2016
DATA 2016,2016,2016,2016,4080,8184,8184,8184
DATA 8184,8184,8184,4080,2016,2016,2016,2016,8,8
DATA 16, 16,256, 29596,24844,22484,2336, 5456, 21396
DATA -2,21396,5456 ,2336,22484,24844,29596,256,0
DATA 16,16,-1,-4097,-12289,-32761,3,-32767,-12319
DATA -4111,-4111,-12319 ,-32767,3,-32761,-12289,-4097,-1
DATA 16,16,9218,29692,8432,8336,8440,32516,32614
DATA 9014,8964,8548 ,9012,8964,8964,9212,8972,9998
DATA 16,16,0,0,8319,12373,-1921,-939,-385
DATA -171,-385,-939,-1921,12373 ,8319,0,0,0
DATA 16,16,0,0,1151,3157,8063,16213,32639
DATA -171,32639,16213,8063,3157 ,1151,0,0,0
20 ' ** Dati per le pedine **
DATA 16,16,0,8184,8196,16482,16514,17954,20338
DATA 24570,24570,24570 ,24570,20466,18402,8196,8184,0
DATA 16,16,0,32736,-32752,-16432,-24496,-24496,-24496
DATA -24496,-16424 ,-32748,-32302,-32748,-14,16421,32743,0
DATA 16,16,0,1022,3586,4102,10238,32094,27310
DATA 24030,31726,24030,27311,32095,4095,1023,511,0
DATA 16,16,-1,-31807,-30751,-28685,-9253,-21547,-4105
DATA -20491 ,-20491,-20491,-20491,-20491,-20491,-20491,-20491,-20491
DATA 16,16,1024,1536,1792,1920,1984,2016,2032
DATA 2040,2044,2046,2047 ,0,-1,32767,16382,8188
DATA 16, 16,-3121,-3121,-1,-1,-1,32766, 0
DATA 8184,8184,8184,8184,8184 ,8184,0,32766,-1
DATA 16,16,0,960,1824,3984,8136,16356,32754
DATA 32761,16370,8164,4040 ,1936,800,448,0,0
DATA 16,16,0,15420,32382,-1,-1,-1,-1
DATA 32766,16380,8184,4080,2016,960 ,384,0,0
DATA 16,16,26752,-3841,-3925,26755,-27393,2731,1527
DATA 1691,799,610 ,-7567,25009,8069,3977,4038,508
DATA 16,16,7280,16476,15288,3808,4064,1984,-2
DATA -2,-2,8176,8176,8176 ,8176,15480,30780,12312
DATA 16,16,0,0,0,2,-32762,-2,-1
DATA 191,159,127,31,31,31,14,0,0
DATA 16,16,7196,5596,7636,5460,5460,13878,17377
DATA -31775,-24781 ,-7881,-5837,-6863,-7681,-31,-65,32542
DATA 16,16,0,992,2032,2032,2032,15342,32223
DATA 32767,32767,32767 ,32223,15342,2032,4088,4088,0
DATA 16,16,-1,-24839,-16387,-899,-1281,-1985,-1985
DATA -641,-897,-961 ,-8161,-16353,-32737,-32739,-32743,-1
DATA 16, 16, 4 064, 16368, 327 60,-4,-8164,-260, -900
DATA -3812,29628,-16644 ,-9095,-8205,-4121,-2097,-2017,-1
DATA 16,16,1344,2744,5460,10242,20485,8194,24573
DATA 23213,9362,22605 ,8386,10250,5460,2728,1360,128
30 '** Dati per i problemi
DATA 1,2,8,1,1,8,8,6,5,3,6,5,8,6,7, 3
DATA 7,2,7,3 6,7,6, 8,1,2,3,3,3,5,1,1
DATA 1,1,1,2,2,2,2,1,1,2,1,4,1,7,4,4
DATA 3,4,1,8,2,7,1,3,1,4,6,2,6, 5,8,7
DATA 4,2,6, 2,5,7,7,7,7,3,2,7, 6,7,7,7
DATA 1,4,2,3,3,3,5,5,5,5,6,5,7,4,7,6
DATA 2,6, 5,4,6,7,7,3,3,4,5,4,4,6, 4,8
DATA 7,2,2,4,5,5,4,8,5,1,6,6,6,7,6,8
DATA 3,4,3,3,5,4,6,4,8,1,3,3,4,5,7,6
DATA 8,2,7,3,7,4,6,7,6,1,3,7,2,3,7,7
DATA 2,3,4,6,5,7,7,5,3,3,3,6,6,3,7,7
DATA 1,1,1,2,8,8,7,8,1,7,3,7,5,7,7,7
DATA 2,3,6,2,3,7,7,6,3,4,5,8,6,6,8,8
DATA 3,3,6,2,7,4,3,7,1,5,4,1,5,8,8,4
DATA 1,4,1,6,4,4,4,5,1,3,2,4,2,6,1,8
DATA 1,1,6,6,6,7,7,6,5,1,6,2,7,3,8,4
DATA 3,3,2,7,4,5,6,5,1,1,2,3,3,5,8,1
DATA 1,5,7,2,5,4,7,4,4,4,4,6,5,4,5,6
DATA 2,8,6,8,7,8,8,8,8,1,2,2,8,6, 2,8
DATA 1,8,2,8,1,6,1,8,1,4,5,6, 7,6,4,5
DATA 1,7,2,7,3,8,4,6,7,7,6,7,6,5,7,5
DATA 4,8,5,8,6,8,8,1,8,1,2,2,1,8,8,7
DATA 3,1,8,2,1,7,4,7,4,8,5,7,7,5,8,4
DATA 8,1,8,2,8,6,3,3,4,3,5,3,6,3,8,6
DATA 8,1,8,8,1,1,1,8,8,1,8,2,1,8,1,7
DATA 1,7,1,8,2,8,1,1,4,4,5,4,6,4,4,6
DATA 3,8,4,8,5,8,5,7,2,1,1,3,3,2,4,1
DATA 6,8,5,8,5,7,6,7,1,3,3,3,3,5,1,5
DATA 4,2,6,2,5,7,7,7,1,2,1,3,1,5,1,7
DATA 1,1,2,2,3,3,3,1,5,2,6,1,7,8,1,2
DATA 8,8,8,7,8,6,3,6,1,3,4,1,4,8,1,6
gresso e quello di uscita con le pedi¬
ne corrispondenti. Potete usare la gri¬
glia di Test per verificare l’esattezza
delle vostre deduzioni.
Posizionate una guardia nella Gri¬
glia Test facendo click sulla casella
in cui volete farla apparire. Se fate
click su una casella occupata la guar¬
dia verrà rimossa. Sparate un raggio
alla guardia con un click sulla casel¬
la di ingresso che desiderate. A diffe¬
renza della griglia Radion, però, so¬
lo un colpo alla volta verrà mostra¬
to. Appena lanciate un secondo rag¬
gio i marcatori precedenti vengono
cancellati (troppo aiuto, il gioco di¬
venta insipido).
Quando credete di aver dedotto la
posizione delle guardie scegliete Ten-
tativo nel menù Soluzione. A que¬
sto punto potete posizionare le guar¬
die nella griglia Radion, come face¬
vate nella griglia di test. Quando le
avete sistemate tutte scegliete Punti
nel menù Soluzione e leggete la vo¬
stra valutazione.
Alcuni spunti per
personalizzare il gioco
Uno schema del programma è rias¬
sunto nella tavola 1.
Lo spazio non permette l’inclusio¬
ne di uno scenario per due giocatori.
Per aggiungerlo dovete:
1. Creare un nuovo menù per la sele¬
zione.
2. Disegnare un'interfaccia per con¬
sentire il posizionamento delle guar¬
die nella griglia (la griglia test po¬
trebbe essere usata a questo fine, poi¬
ché è creata proprio per controllare
le guardie) e infine aggiungere delle
istruzioni visualizzabili a comando.
La routine di controllo è stata idea¬
ta con un occhio di riguardo più per
la leggibilità che per la velocità e lo
stile algoritmico. Come è attualmen¬
te svolge il suo lavoro con discreta
velocità, ma potrebbe essere resa piu
veloce e compatta.
Siete ovviamente liberi di aggiun¬
gere nuovi problemi, usando cinque
guardie. Più che liberi: siete incorag¬
giati a farlo, e potete persino ridise¬
gnare le pedine.
- x
Questo programma è disponibile
su dischetto. L’elenco, I prezzi
e le modalità d’ordine di questo
e degli altri dischetti disponibili
sono riportati nella rubrica
Disk Service.
> J
® Nibbio e Applicando
75
UTILITY
Creare e modificare i file di testo diventa decisamente più facile
con questo programma in Applesoft, che consente
l'editing orientato sulla linea, una funzione di ricerca e l'accesso
diretto alla maggior parte dei comandi del dischetto.
Gestione diretta
per i file di testo
Accorgersi di aver commesso un
errore di ortografia in una linea quan¬
do ormai si è in ambiente di pro¬
grammazione significa di norma do¬
ver uscire dalla programmazione e ri¬
caricare l'Apple Writer per corregge¬
re il file di testo. Niente di catastro¬
fico, indubbiamente, ma senz'altro u-
na piccola scocciatura che sarebbe
bello poter evitare...
Text File Utility, in Applesoft,
rende quanto mai semplice scrivere e
modificare i file di testo sequenziali.
Gira su qualsiasi Apple II Plus, Ile
o Ile, è interamente compatibile con
il ProDOS e supporta la stampante
Epson MX-80 nello slot 1.
Utilizzo, stampa
e salvataggio
I comandi usati dal programma so¬
no per la maggior parte identici ai
corrispondenti comandi del DOS (o
ProDOS) e dell'Applesoft: CATA-
LOG, DELETE, HOME, LIST, LO¬
OK, NEW, RENAME e UNLOCK.
Per leggere un file con il Text File
Utility a scopo di editing usate il co¬
mando LO AD nomefile. Per scrivere
il file di testo sul dischetto, usate
S AVE nomefile. Se dovete specifica¬
re con i comandi LO AD o S AVE un
numero di drive, esso dev'essere l’ul¬
tima parte del comando. Inoltre è ne¬
cessario introdurre uno spazio fra il
comando e il nome del file. Ecco un
esempio della giusta sintassi:
S AVE LISTERJD1 <RETURN>
Ricordate che in ProDOS non ci
possono essere spaziature nel nome
del file e che il nome non può supe¬
rare i 15 caratteri di lunghezza.
Il comando SEARCH permette,
come implica il suo nome, di esplo¬
rare il file alla ricerca di qualsiasi ca¬
rattere o stringa di caratteri. Suppo¬
niamo per esempio che abbiate intro-
Listato 1. Text file utility
dotto in qualche punto del vostro fi¬
le di lavoro questa linea:
120 PRINT "STO CARICANDO
IL PROGRAMMA NIME,
ATTENDI PREGO.”
Per trovare la linea con l'errore di
ortografia introducete il comando
DOS 3.3
ProDOS
Apple Ile
Apple Ile
ì
2
3
4
5
6
7
70
80
90
100
110
120
130
140
150
160
170
TEXT FILE UTILITY
DI RUDY A. GUY
COPYRIGHT (C) 1986
BY APPLICANDO &
MICROSPARC, INC
Apple Ile
Apple Ile
REM
REM
REM
REM
REM
REM
REM
POKE 768,104: POKE 769,168: POKE 770,104: POKE 771,166: POKE
72,223: POKE 773,154: POKE 774,72: POKE 775,152: POKE 776,72:
POKE 777,96
ONERR GOTO 1450
GOSUB 1390
REM -->PROGRAMMA PRINCIPALE<—
TEXT : HOME
VTAB 1: INVERSE : FOR I = 1 TO 80 : PRINT
A$ = "TEXT FILE UTILITY * DI RUDY A. GUY":
C) 1986 BY APPLICANDO & MICROSPARC": GOSUB 1380: NORMAL : POK
E 34,2
VTAB 22: PRINT "CATALOG DELETE EDIT HOME LIST LOAD LOCK NEW
,NUM FINE RENAME SEARCH UNLOCK CTRL - Z (RETURN) STAMP
A";: POKE 35,21: HOME
GOSUB 1280: ONERR GOTO 1450
REM —>ANALIZZA LINEA<—
IF LEN (LI$) = 0 THEN 140
IF ASC ( LEFT$ (LI$,1)) > 47 AND ASC ( LEFT$ (LI$,1)) < 58
THEN GOSUB 1120: GOTO 140
NEXT : VTAB 1:
GOSUB 1380:A$ = "(
180
IF
LEFTS
(LIS,4)
=
"LOAD"
THEN
330
190
IF
LEFT$
(LIS,4)
=
"SAVE"
THEN
600
200
IF
LEFT$
(LIS,4)
=
"HOME"
THEN
HOME
: GOTO 140
210
IF
LEFTS
(LIS,4)
=
"LIST"
THEN
GOSUB
790: GOTO
140
220
IF
LEFTS
(LIS,3)
=
"NEW"
THEN
910
230
IF
LEFTS
(LIS,4)
=
"FINE"
THEN
TEXT
: HOME : END
240
IF
LEFTS
(LIS,3)
=
"CAT"
THEN
GOSUB
930: GOTO
140
250
IF
LEFTS
(LIS,3)
=
"DEL"
THEN
GOSUB
930: GOTO
140
260
IF
LEFTS
(LIS,3)
=
"REN"
THEN
GOSUB
930: GOTO
140
270
IF
LEFTS
(LIS,4)
=
"UNLO"
THEN
GOSUB
930: GOTO
140
280
IF
LEFTS
(LIS,4)
=
"LOCK"
THEN
GOSUB
930: GOTO
140
290
IF
LEFTS
(LIS,4)
=
"SEAR"
THEN
GOSUB
950: GOTO
140
76
SEARCH e premete il tasto <RE-
TURN>. Sarete invitati a introdurre
la chiave di ricerca. A questo punto
introducete NIME e premete <RE-
TURN>. Quando viene trovata una
corrispondenza la linea viene visua¬
lizzata alla sommità dello schermo e
siete invitati a dire se volete modifi¬
care, proseguire la ricerca o interrom¬
pere l'operazione.
Se scegliete la modifica della linea
il cursore si sposta all’inizio della li¬
nea. Le frecce sinistra e destra vi per¬
mettono di spostarvi su differenti
parti della linea da modificare. Pre¬
mendo <CTRL>D si elimina il ca¬
rattere sotto il cursore, mentre pre¬
mendo qualsiasi altro tasto si inseri¬
sce il carattere appropriato alla sini¬
stra del cursore. Si può premere in
qualsiasi momento <RETURN> per
completare il ciclo di editing, e non
c’è bisogno di spostare il cursore a fi¬
ne linea.
Se sapete che linea volete modifi¬
care potete fare a meno del comando
SEARCH e usare al suo posto il co¬
mando EDIT. La sintassi giusta per
EDIT è questa:
EDIT 120 <RETURN>
Quando usate il comando EDIT fa¬
te attenzione che rimanga uno spa¬
zio fra la parola EDIT e il numero
della linea che volete modificare. Se
viene introdotto un numero di linea
che non esiste riceverete il messag¬
gio d’errore ”+++NUMERO LINEA
INESISTENTE” (numero di linea
non trovato). Se decidete di non mo¬
dificare una linea dopo che è stata vi¬
sualizzata vi basta premere <RE-
TURN> e la linea rimarrà immu¬
tata.
Introducendo <CTRL>Z <RE-
TURN> si riversa il file di lavoro
corrente sulla stampante. Se la vo¬
stra configurazione è diversa dall’E-
pson MX-80 nello slot 1, può darsi
che dobbiate modificare la linea
1410 per l’adattamento alla vostra
specifica stampante.
Quando si tratta di salvare un file,
potete scegliere se salvarlo con o
senza numero (il default è senza nu¬
mero). Questa caratteristica può sem¬
brare poco importante a prima vista,
ma diventando più pratici con l’uti¬
lizzo di questo programma capirete
perché è stata inserita. Dato che la
funzione principale del Text File Uti¬
lity è la scrittura di file sequenziali
di dati o file eseguibili con EXEC, i
numeri di linea che vengono intro¬
dotti durante la scrittura di un file
vengono tolti mentre il file viene
salvato nel modo di default, cioè sen¬
za numero.
Tuttavia se volete scrivere un pro¬
gramma con l’aiuto di Text File Uti¬
lity dovrete forzarlo a salvare il file
con i numeri di linea intatti. Questo
si ottiene usando il suffisso
" JSnjM” con il comando S AVE, co¬
me segue:
SAVE CAPTURE,NUM,D2 <RE-
TURN>
La creazione
di un file
Creare un file è molto simile a
scrivere un programma in Apple¬
soft. Se viene introdotto un numero
di linea il codice che viene dopo è
immagazzinato come parte del file di
testo. Se non viene introdotto alcun
numero di linea il comando viene e-
seguito immediatamente. Il breve e-
sempio che segue produce un file
che, quando viene eseguito con E-
XEC, lista sulla stampante il pro¬
gramma in memoria. Quando si fa
girare il Text File Utility il carattere
del prompt passa dalla parentesi qua¬
dra destra (]) al simbolo di omissio¬
ne ( A ). Introducete queste linee di pro¬
gramma, facendo attenzione che ci
sia un spazio dopo ogni numero di
linea:
10 PRINT CHR$(4)”PR#1"
20 PRINT CHR$(9)"80N"
30 PRINT CHR$(4)”PR#0”
Adesso battete LIST e comparirà
quanto segue:
00010 PRINT CHR$(4)”PR#1”
00020 PRINT CHR$(9)”80N”
00030 PRINT CHR$(4)"PR#0"
Come potete vedere è stata omessa
dal programma una linea molto im¬
portante: il comando LIST. Vi baste¬
rà introdurre la linea che segue e sare¬
te pronti a- salvare il file sul di¬
schetto:
25 LIST
Se avete qualche dubbio circa il
punto in cui andrà a finire questa li¬
nea battete nuovamente LIST e
comparirà fra le linee 00020 e
00030 la linea 00025.
300
310
320
330
340
350
360
370
380
390
400
410
420
430
440
450
460
470
480
490
500
510
520
530
540
550
560
( 4)"OPEN "TE$
(4)"READ "TES
630
640
IF LEFT$ (LI$,4) - "EDIT" THEN GOSUB 1590: GOTO 140
IF LEFT$ (LI$,1) = CHR$ (26) THEN GOSUB 1400: GOTO 140
PRINT CHR$ (7)"+++ COMMAND ERROR": GOTO 140
REM —>CARICA IL FILE<—
FOR I - 1 TO LI:LI$(I) = "": NEXT :LI - 1
IF LEN (LI$) = 4 THEN 320
LI$ = RIGHTS (LI$, LEN (LI$) - 4)
FOR I = 1 TO LEN (LI$): IF MIDS (LI$,I,1) = CHR$ (44) THEN
390
NEXT :TE$ = LI$: GOTO 400
TES = LEFT$ (LI$/1 - 1): ONERR GOTO 1460
PRINT CHR$ (4)"RENAME "TES","LIS
POKE 216,0
ONERR GOTO 500
PRINT CHR$
PRINT CHR$
LI$ = "'
GET A$: IF A$ = CHRS (13) THEN 480
LI$ = LI$ + A$: GOTO 460
IF LI$ = "" THEN 460
LI$(LI) = LI$:LI = LI + 1: GOTO 450
PRINT : PRINT CHR$ (4)"CLOSE": LI * LI - 1 : POKE 216,0: HOME
: IF NOT LI THEN PRINT "+++ NESSUN FILE IN MEMORIA": GOTO 1
40
FOR I = 1 TO LI :AD$ = STRS (I * 10)
IF LEN (AD$) < 5 THEN AD$ = "0" + AD$: GOTO 520
LI$ (I) = AD$ + " " + LI$(I)
PRINT LI$ (I) : NEXT
IF ASC ( MID$ (LIS(LI),7,1) ) > 57 THEN 580
PRINT : INPUT "CANCELLI IL PRIMO SET DI NUMERI ?";YN$:: PRINT
: IF LEFT$ (YN$,1) = "N" THEN 580
= 1 TO LI :LI$(I) = RIGHTS (LI$(I), LEN (LI$(I)) - 6):
PRINT LI$ (I) : NEXT
ONERR GOTO 1450
GOTO 140
REM —>SALVA IL FILE<—
IF LEN (LI$) = 4 THEN 320
IF MID$ (LI$, LEN (LI$) - 1,1) = "D" THEN T$ = RIGHTS (LIS,
3):TF = 1 :LIS = LEFTS (LIS, LEN (LIS) - 3)
IF RIGHTS (LIS,4) = ",NUM" THEN FL = 1:LI$ = LEFTS (LIS, LE
N (LIS) - 4)
LIS = RIGHTS (LIS, LEN (LIS) - 4) . .
(Continua)
570 FOR I
580
590
600
610
620
77
Tavola 1. Le subroutine di Text file utility
70-130 Inizializza e visualizza intestazione e comandi.
140-320 Salta alla routine di input da tastiera e analizza la linea. Se c'è
un numero nella prima posizione della stringa Ll$, salta
a COSTRUISCE FILE. Se non c'è controlla se ci sia un comando
valido di esecuzione immediata e salta alla subroutine appropriata.
330-540 Carica in memoria un file di testo.
550-590 Controlla se il file caricato sia stato salvato in formato numerato
o non numerato.
600-780 Se è numerato chiede se si vuole eliminare il primo set di numeri.
790-890 Lista sullo schermo il file di lavoro.
900-910 Cancella il file dalla memoria.
920-930 Esegue un comando DOS.
940-1110 Effettua la ricerca nella stringa.
1120-1270 Costruisce il file di lavoro. Colloca
la nuova linea in sequenza numerica.
1280-1360 Legge il buffer di tastiera.
1370-1390 Routine di centratura del testo.
1400-1440 Lista il file di lavoro sulla stampante.
1450-1580 Routine di gestione dell'errore.
1590-1850 Routine di editing della linea.
A differenza dell'Applesoft, Text
File Utility richiede uno spazio do¬
po ogni numero di linea. Se lo spa¬
zio viene omesso riceverete un mes¬
saggio di errore d'introduzione
"+++ENTRY ERROR'”'. Potete u-
sare un punto interrogativo invece di
un'istruzione PRINT se il file che
state creando sarà usato solo in am¬
biente Applesoft. Un'altra differenza
fra l'ambiente del Text File Utility e
l'Applesoft è il modo in cui sono
implementate le frecce sinistra e de¬
stra. Se notate un errore in una linea
e spostate il cursore a ritroso fino al¬
l'errore i caratteri sotto il cursore ver¬
ranno cancellati e dovranno essere ri¬
battuti. E' da notare però che le fun¬
zioni di editing ESC non sono sup¬
portate da questo programma.
Per salvare Ti file appena creato
battete:
S AVE LISTER <RETURN>
Poi battete CATALOG e vedrete
un file di testo di due settori denomi¬
nato LISTER. Per assicurarvi che
funzioni a dovere battete FINE <RE-
TURN>. Mettete la stampante in li¬
nea e battete EXEC LISTER <RE-
TURN>. Dovreste ricevere un lista¬
to completo di questo programma.
In caso negativo fate girare nuova¬
mente Text File Utility e fate
LOAD LISTER. Controllate il vo¬
stro file confrontandolo con il lista¬
to visibile sopra.
Il file che avete appena creato è uti¬
lizzato solamente come file EXEC.
Invece l’esempio della figura 1 è
un po’ più complesso. Quando se ne
fa l'EXEC, aggiunge sette linee di i-
struzioni a un programma esistente,
fa girare il programma cominciando
dalla linea 62000 e poi elimina le li¬
nee che ha appena aggiunto. Avete a
disposizione due modi per introdurre
650 IF LI < 1 THEN PRINT CHR$ (7)"+++ NESSUN FILE DI LAVORO": G
OTO 140
660 FOR I = 1 TO LEN (LI$): IF MID$ (LIS,1,1) = CHR$ (44) THEN
680
670 NEXT
680 TE$ = LEFTS (LI$,I - 1)
690 IF TF THEN TE$ = TE$ + T$
700 PRINT CHR$ (4)"OPEN "TE$: PRINT CHR$ (4)"CLOSE"
710 PRINT CHR$ (4)"DELETE"TE$
720 PRINT CHR$ (4)"OPEN "TE$
730 IF TF THEN TF = 0:TE$ = LEFTS (TES, LEN (TE$) - 3)
740 PRINT CHR$ (4)"WRITE "TE$
750 FOR I = 1 TO LI: IF NOT FL THEN PRINT RIGHTS (LI$(I), LEN
(LI$(I)) - 6): GOTO 770
760 PRINT LI$(I)
770 NEXT : PRINT CHR$ (4)"CLOSE":FL = 0
780 GOTO 140
790 REM _>LISTA IL FILE<—■
800 IF LI < 1 THEN PRINT CHR$ (7)"+++ FILE DI LAVORO VUOTO": RE
TURN
810 IF LI$ = "LIST" THEN FOR I = 1 TO LI : PRINT LIS(I): NEXT : R
E TURN
820 TES = RIGHTS (LI$, LEN (LI$) - 5)
830 FOR I = 1 TO LEN (TE$): IF MID$ (TES,1,1) = CHRS (44) THEN
B = VAL ( LEFT$ (TES,I - 1)):EN = VAL ( RIGHTS (TES, LEN (
TE$) - I)): GOTO 850
840 NEXT :EN = VAL (TE$):B = 0
850 FOR I » 1 TO LI
860 IF VAL ( LEFTS (LI$(I),5)) > = B AND VAL ( LEFTS (LI$(I),5
)) < = EN THEN PRINT LI$(I)
870 IF VAL ( LEFTS (LI$(I),5)) = EN THEN RETURN
880 NEXT
890 RETURN
900 REM —>PULISCE IL FILE<—
910 CLEAR : GOSUB 1390: GOTO 140
920 REM —>COMANDO DOS<—
930 PRINT CHRS (4)LI$ : RETURN
940 REM —>RICERCA<—
950 HOME : VTAB 12: PRINT "CHIAVE DI RICERCA ? :";:SE$ = ""
960 GET A$: IF A$ = CHRS (8) AND LEN (SES) > 1 THEN SES = LEFT
$ (SES# LEN (SES) - 1): PRINT " "ASAS;: GOTO 960
970 IF A$ - CHRS (8) AND LEN (SES) = 1 THEN SES - "": PRINT " "
ASAS;: GOTO 960
980 IF A$ = CHRS (8) AND LEN (SES) - 0 THEN PRINT " ";A$;: GOT
O 960
990 IF A$ = CHRS (21) THEN 960
1000 PRINT A$; : IF A$ = CHRS (13) THEN 1020
1010 SES = SES + A$: GOTO 960
1020 FOR I = 1 TO LI
1030 FOR J = 1 TO LEN (LI$(I)): IF LEN (SES) > LEN (LIS(I)) TH
EN 1060
1040 IF MIDS (LIS(I), J, LEN (SES)) = SES THEN HOME : HTAB 2: PR
INT LIS(I): GOTO 1080
1050 NEXT J m
1060 NEXT I m
1070 VTAB 12: CALL - 958: RETURN
1080 VTAB 12: INPUT "(M)ODIFICA (C)ONTINUA O (F)INE ?";OP$:OP$ =
LEFTS (OP$,1): IF OPS < > "M" AND OPS < > "C" AND OPS <
> "F" THEN VTAB 12: CALL - 958: GOTO 1080
1090 IF OPS = "C" THEN VTAB 12: CALL - 958: PRINT "STO CERCANDO
..." : GOTO 1050
1100 IF OPS = "F" THEN VTAB 12: CALL - 958: RETURN
1110 VTAB 12: CALL - 958: HTAB 1: VTAB 3: GOSUB 1660: RETURN
1120 REM —COSTRUISCE IL FILE<—
1130 CHS = " ": REM 10 SPAZI
1140 IF LEN (LIS) < 5 THEN LIS - LIS + CHRS (32): GOTO 1140
1150 LI = LI + 1
78
I
questo esempio. Il primo metodo
consiste nell'introdurlo esattamente
come si presenta nell’esempio 1. Il
metodo alternativo è l’introduzione
di queste linee:
62000 HOME
62010 PRINT CHR$(4)”OPEN
CAPTUREFP”
62020 PRINT CHR$(4)”WRITE
CAPTUREFP”
62030 PRINT LIST ,61999
62040 PRINT CHR$(4)”CLOSE"
62050 TEXT:HOME
Quando avete completato l’introdu¬
zione del codice salvate il file con:
SAVE CAPTUREJSUM
<RETURN>
Come detto sopra, l'impiego del
suffisso ”,NUM" dà istruzione di sal¬
vare il file con tutti i numeri di li¬
nea intatti. Ciò è desiderabile nel
nostro caso perché quando si fa l’E-
XEC di Capture dal Basic le linee
62000-62050 vengono aggiunte al
programma che risiede al presente in
memoria.
Ora che Capture è stato salvato
sul dischetto battete:
LOAD CAPTURE <RETURN>
Il file che avete appena salvato vie¬
ne ricaricato e listato sullo schermo,
con la comparsa di un ulteriore set
di numeri davanti ai numeri di linea
originari. Quando il listato è comple¬
to appare sullo schermo il prompt:
CANCELLI IL PRIMO SET DI
NUMERI?
Battete N e premete <RETURN>.
Adesso introducete queste due linee
di codice:
80 RUN 62000
90 DEL 62000,62050
Quando avete finito battete:
SAVE CAPTURE <RETURN>
Text File Utility salva il file, pri¬
vandolo del suo primo set di nume¬
ri, di modo che le prime sette linee
vengono salvate con i prefissi nume¬
rici (numeri di linea) mentre le ulti¬
me due righe non li hanno.
Avete ora creato un file che prima
aggiunge linee a un programma in
memoria e poi esegue il programma
partendo dalle linee che ha appena
aggiunto.
Se state introducendo un program¬
ma in Applesoft e i suoi numeri di
linea sono più bassi di 62000, un
semplice comando EXEC CAPTU¬
RE trasforma il programma in un fi¬
le di testo denominato CAPTURE¬
FP.
Adesso si può caricare il program¬
ma in Text File Utility o nella mag¬
gior parte dei word processor per far¬
ne un facile editing. Inoltre è adesso
nel formato appropriato per la tra¬
smissione via modem.
Altre applicazioni dei file EXEC
comprendono la fusione dei program¬
mi, il caricamento delle tavole delle
figure e l'installazione di programmi
in linguaggio macchina.
Si può usare questo programma
per modificare quasi tutti i file di te¬
sto sequenziali, compresi molti data¬
base.
Per trarre un file di programma in
Applesoft da un file di testo dovete
fare 1EXEC del file di testo, e poi u-
sare il comando S AVE per salvare il
programma sul dischetto.
1160
1170
1180
1190
1200
1210
1220
1230
1240
1250
1260
1270
1280
1290
1300
FOR I = 1 TO 5: IF ASC ( MID$ (LI$,I,1)) > 57 OR ASC ( MID
$ (LI$,I,1)) = 32 THEN LI$ = "0" + LI$
NEXT
IF MID$ (1*1$, 6,1) < > CHR$ (32) THEN PRINT CHR$ (7)" +++
ENTRY ERROR": LI = LI - 1: RETURN
IF VAL ( LEFT$ (LI$(LI - 1),5)) < VAL ( LEFT$ (LI$,5)) THE
N LI$(LI) = LI$: RETURN
FOR I = 1 TO LI: IF VAL ( LEFT$ (LI$(I),5)) > = VAL ( LEF
T$ (LI$,5)) THEN 1220
NEXT
IF RIGHT$ (LI$,
LEN (LI$) - 5) =
RIGHT$ (CH$, LEN (LI$) -
5) AND VAL ( LEFT$ (LI$(I),5)) = VAL ( LEFT$ (LI$,5)) THEN
FOR J = I TO LI - 2 :LI$(J) = LI$(J + 1): NEXT J:LI = LI -
2: RETURN
IF VAL ( LEFT$ (LI$(I),5)) = VAL ( LEFT$ (LI$,5)) THEN LI$
(I) = LI$ : LI = LI - 1: RETURN
FOR I = 1 TO LI: IF VAL ( LEFT$ (LI$,5)) < VAL ( LEFT$ (LI
$(I),5)) THEN 1260
NEXT
J = I
FOR I = LI TO J STEP - 1:LI$(I) = LI$(I - 1): NEXT :LI$(J)
= LI$: RETURN
REM —>LEGGE LA TASTIERA<—
PRINT ,,ys " ; : LI$ =
GET A$: IF A$ = CHR$ (8) AND LEN (LI$) > 1 THEN LI$ = LEF
T$ (LI$, LEN (LI$) - 1): PRINT " "A$A$;: GOTO 1300
1310 IF A$ -
1320
1330
1340
1350
1360
1370
1380
1390
1400
1410
1420
1430
1440
1450
1460
1470
1480
1490
1500
1510
1520
1530
1540
1550
1560
1570
1580
LEN (LI$) = 1 THEN LI$
PRINT
CHR$ (8) AND
"A$A$;: GOTO 1300
IF A$ = CHR$ (8) AND LEN (LI$) = 0 THEN PRINT " ";A$;: GO
TO 1300
IF A$ = CHR$ (21) THEN 1300
PRINT A$;: IF A$ = CHR$ (13) THEN RETURN
LI$ = LI$ + A$: GOTO 1300
RETURN
REM —>ROUTINE DI CENTRATURA<—
HTAB 21 - LEN (A$) / 2: PRINT A$:
DIM LI$(500): RETURN
REM —>ROUTINE STAMPANTE<—
PRINT CHR$ (4)"PR#1": PRINT
FOR I = 1 TO LI: PRINT LI$(I):
PRINT CHR$ (4)"PR#0"
RETURN
REM —>ROUTINE ERRORI<—
ER = PEEK (222) : REM <— TIPO DI ERRORE
EL = PEEK (218) + PEEK (219) * 256: REM <—N. LINEA ERR
ORE
CALL 768
IF ER « 255 THEN TEXT : HOME : END
REM ALTRI ERRORI
RETURN
CHR$ (9)"80N"
NEXT
IF ER
0
IF ER
IF ER
IF ER
IF EL
TO 140
IF ER
IF ER
6 THEN PRINT CHR$ (7)"+++ FILE NOT FOUND": GOTO 14
8 THEN PRINT CHR$ (7)"+++ I/O ERROR": GOTO 140
9 THEN PRINT CHR$ (7)"+++ DISK FULL": GOTO 140
10 THEN PRINT CHR$ (7)"+++ FILE LOCKED": GOTO 140
870 THEN PRINT CHR$ (7)"+++ DOS COMMAND ERROR": GO
53 THEN PRINT CHR$ (7)"+++ ENTRY ERROR": GOTO 140
16 OR ER = 11 THEN PRINT CHR$ (7)"+++SYNTAX ERROR"
: GOTO 140
PRINT "TIPO DI ERRORE :"ER: PRINT "N.LINEA ERRORE :"EL: STOP
1590
1600
1610
1620
REM —>RICERCA LA LINEA DA MODIFICARE<—
IF LI < 1 THEN PRINT CHR$ (7)"+++ FILE DI LAVORO VUOTO": R
ETURN
IF MID$ (LI$,5,1) < > CHR$ (32) THEN PRINT CHR$ (7)"+++
SYNTAX ERROR": RETURN
LI$ = RIGHT$ (LI$, LEN (LI$) - 5):SE = VAL (LI$)
f Continua)
79
1630 FOR I = 1 TO LI: IF SE - VAL ( LEFT$ (LI3(I),5)) THEN FL =
I
1640 NEXT : IF FL > 0 THEN I = FL:FL = 0: HOME : HTAB 2: PRINT LI
$(I): VTAB 3: GOTO 1660
1650 PRINT CHR$ (7)"+++NUMERO LINEA INESISTENTE": RETURN
1660 REM —>EDITA<—
1670 PO = 1:LI$ = LEFT$ (LI3(I),6) :LI3 (I) = RIGHT3 (LI$(I) # LEN
(LI$ (I) ) - 6)
1680 PRINT " A "; : HTAB 8
1690 GET A$: IF A$ = CHR$ (21) THEN PO = PO + 1:H = PEEK (36):
IF H = 39 THEN H = 0: PRINT : POKE 36,H: GOTO 1690
1700 IF A$ - CHR$ (21) THEN H = H + 1: POKE 36,H: GOTO 1690
1710 IF A3 = CHR3 (8) AND PO > 0 THEN PO = PO - 1: PRINT A3;: GO
TO 1690
1720 IF A3 = CHR5 (8) AND PO = 0 THEN 1690
1730 IF A3 = CHR3 (13) AND LI3(I) = "" THEN J = I: FOR I = J + 1
TO LI :LI3(I - 1) = LI3(I): NEXT :LI5(LI) = "":LI = LI - 1 :
HOME : RETURN
1740 IF A3 = CHR5 (13) THEN LI$(I) = LI3 + LI3(I): HOME': PRINT
LI3(I): RETURN
1750 IF A3 = CHRS (4) AND LEN (LIS(I)) < = 1 THEN LI3(I) =
GOTO 1690
1760 IF A3 = CHRS (4) AND PO = 1 THEN LIS(I) = RIGHT3 (LI3(I),
LEN (LIS(I)) - 1): HOME : HTAB 2: PRINT LI$;LIS(I): VTAB 3:
HTAB 8 : PO = 1: GOTO 1690
1770 IF A3 = CHRS (4) AND PO = LEN (LIS(I)) THEN LIS(I) = LEFT
3 (LlSd), PO - 1): PRINT " " CHRS (8) CHRS (8);:PO = PO - 1:
GOTO 1690
1780 IF A3 = CHRS (4) AND PO > LEN (LIS(I)) THEN 1690
1790 IF A3 = CHRS (4) THEN T1S = LEFT3 (LI3(I),PO - 1):T23 = R
IGHTS (LIS(I), LEN (LI3(I)) - PO):LI$(I) = T1S + T23:H = PE
EK (36) :V = PEEK (37): HOME : PRINT " A,, LI$;LI3 (I) ; : POKE 36
, H: POKE 37,V: GOTO 1690
1800 IF PO = 1 THEN LIS(I) = A3 + LI3(I):PO = PO + 1:H = PEEK (3
6) : H = H + 1 : HOME : PRINT ,,A " ;LIS;LIS (I) ; : POKE 36, H: GOTO
1690
1810 IF PO > LEN (LI3(I)) THEN PRINT A3;:LI3(I) = LIS(I) + A3 :P
O = PO + 1: GOTO 1690
1820 TI3 = LEFT3 (LI3(I),PO - 1) :T2S = A3 + RIGHT3 (LI3(I), LEN
(LI3(I)) - (PO - 1)):LI3(I) = T13 + T23: PO = PO + 1
1830 H = PEEK (36): IF H = 39 THEN H - 0:V = PEEK (37) + 1: GOT
O 1850
1840 H = H + 1 : V = PEEK (37)
1850 HOME : PRINT ,,A " ;LIS;LIS (I) : HTAB H + 1: VTAB V + 1: GOTO 16
Checksum del listato 1
NOME FILE:
TEXT FILE UTILITY
TIPO: A
LUNGHEZZA:
148B
CHECKSUM :
22
Figura 1. Esempio di file EXEC.
10 62000 HOME
20 62010 PRINT CHR$(4) "OPEN CAPTUREFP"
30 62020 PRINT CHR$(4) "WRITE CAPTUREFP"
40 62030 LIST, 61999
50 62040 PRINT CHR$ (4) "CLOSE"
60 62050 TEXT : HOME
70 RUN 62000
80 DEL 62000,62050
Introduzione e
possibili modifiche
Per digitare Text File Utility co¬
piate il listato 1 e salvatelo con:
S AVE TEXT FILE UTILITY
aiutandovi eventualmente con i con¬
sigli della rubrica Per chi comincia.
Nella tavola 1 sono elencate le
locazioni delle varie subroutine.
Per i possessori di Apple Ile non
sarebbe arduo compito convertire il
programma per la visualizzazione a
80 colonne. Accertatevi solo che lo
schermo a 80 colonne sia chiuso pri¬
ma di riversare il file di lavoro sulla
stampante. Non passerà molto tem¬
po prima che scopriate che Text file
utility è diventata necessaria.
Questo programma è disponibile
su dischetto. L’elenco, i prezzi
e le modalità d’ordine di questo
e degli altri dischetti disponibili
sono riportati nella rubrica
Disk Service.
GRAFICA
Creazione e gestione di una figura a blocco, giunti alla quarta puntata, non
dovrebbero riservare più sorprese. Né lo dovrebbe l'animazione. Invece...
Più veloce
senza scambio
Abbiamo ormai scoperto quanto fa¬
cili siano da creare le figure a bloc¬
co, e anche con quale rapidità possa¬
no spostarsi qua e là sullo schermo.
A mano a mano che veniva presenta¬
ta una nuova routine, o gruppo di
routine, aggiungendo queste routine
al driver si è cercato di dare una di¬
mostrazione del loro modo d'impie¬
go creando semplici programmi di
chiamata in Applesoft. Si contano
letteralmente a centinaia i modi in
cui si possono affrontare differenti e-
sigenze di animazione usando queste
routine pilota.
Inoltre uno dei principali vantag¬
gi di Block Shape Maker ( Applican¬
do n. 27 pag. 67) è che aiuta a com¬
prendere lo schermo Hi-Res: provan¬
do differenti configurazioni di bit al-
finterno di byte singoli e contigui,
e mettendo a uno o a zero il bit colo¬
re, si possono ottenere sullo scher¬
mo molti effetti interessanti quanto
inattesi. Provate quindi a usarlo co¬
me strumento didattico e sperimenta¬
le, oltre che come utility grafica.
Le routine del driver possono esse¬
re immaginate come nuovi comandi
Applesoft, che hanno come sintassi
appropriata CALL (indirizzo della
routine) e causano una o più azioni.
I programmi di prova sono dimostra¬
zioni molto semplici di come si pos¬
sano combinare vari comandi per
trattare differenti situazioni grafiche.
L'animazione
a spostamento
Dovreste avere ormai in mente un
quadro piuttosto chiaro del modo in
cui funziona l’animazione grafica.
Sostanzialmente è la stessa faccenda
più o meno in tutti i metodi che ave¬
te impiegato: cancellare-muovere-di-
segnare-cancellare-muovere-disegna-
re... eccetera. In ogni metodo finora
visto si è trattato di disegnare e ridi¬
segnare continuamente, più e più
volte, le informazioni contenute nel¬
la tavola delle figure.
Con ranimazione a spostamento
dovrete mettere da parte queste vec¬
chie idee, e rivedere completamente
ciò che sapete dell’animazione grafi¬
ca. L'animazione a spostamento è
quanto di più vicino ci sia alla vera
animazione, poiché non utilizza alcu¬
na routine di disegno o di cancella¬
zione. In sostanza è proprio quello
che sembra: si colloca una figura sul¬
lo schermo, e la si muove letteral¬
mente a destra o a sinistra attraverso
lo schermo.
Si disegna (DRAW) la figura una
volta sola, per metterla inizialmente
sullo schermo. Un’altra splendida ca¬
ratteristica dell'animazione a sposta¬
mento è che si può, volendo, usare
solo uno schermo Hi-Res, e i risulta¬
ti saranno scorrevoli e privi di sfar¬
fallio come quelli per i quali abbia¬
mo finora avuto bisogno dello scam¬
bio di pagine. Il problema è che la
vera animazione a spostamento fun¬
ziona solo con figure che si sposta¬
no da destra a sinistra a destra, e
quindi se il vostro programma ha fi¬
gure che si spostano in su e in giù,
oltre a figure che si spostano lateral¬
mente, può darsi che abbiate ancora
bisogno di lavorare con lo scambio
di pagine.
L'idea di base dell'animazione a
spostamento è questa. Prima predi¬
sponete le informazioni VT, VB,
HR e HL per la vostra figura, e poi
la disegnate sullo schermo. Una vol¬
ta che la figura è sullo schermo (nel-
ListatO 1. Routine SHFTR/SHFTL/MOVEL e MOVER
DOS 3.3
SOURCE FILE: LISTATO 1
NEXT OBJECT FILE NAME IS
9197:
OOFC:
OOFD :
OOFE :
OOFF :
0026:
0027:
0006:
00FA:
00FB :
93 91:
9197 :A5 FF
9199:C9 02
919B:90 0E
919D:C6 FF
919F:C6 FE
91A1:A5 FF
91A3:C9 01
91A5:90 04
91A7:C6 FF
91A9:C6 FE
91AB: 60
91AC:E6 FF
91AE:E6 FE
91B0:E6 FF
VT
VB
HR
HL
HBASL
HBASH
8 YO
9 BASL
10 BASH
11 YADDR
12 MOVEL2
13
14
15
16
17 MOVEL1
18
19
20
21
22 EXIT
23 MOVER2
24
25 MOVER1
ORG
EQU
EQU
EQU
EQU
EQU
EQU
EQU
EQU
EQU
• EQU
LDA
CMP
BCC
DEC
DEC
LDA
CMP
BCC
DEC
DEC
RTS
INC
INC
INC
LISTATO 1.OBJ0
$9197
$FC
$FD
$FE
$FF
$26
$27
$6
$FA
$FB
$9391
HL
#2
EXIT
HL
HR
HL
#1
EXIT
HL
HR
HL
HR
HL
Apple Ile
Apple Ile
(SCREEN BASE
ADDRESS)
DECIMAL 252
DECIMAL 253
DECIMAL 254
DECIMAL 255
DECIMAL 38
DECIMAL 39
DECIMAL 6
DECIMAL 250 (TABLE BASE
DECIMAL 252 ADDRESS)
DECIMAL 37777 (READ YTABLE)
CALL 37271 TO ENTER
IS ,HL<2?
YES-CANCEL EXECUTION
HL=HL-1
HR=HR-1
CALL 37281 TO ENTER
IS HL<1?
YES-CANCEL EXECUTION
HL=HL-1
HR=HR-1
DONE-EXIT ROUTINE
CALL 37292 TO ENTER
HR=HR+1:HL=HL+1
CALL 37296 TO ENTER
(Continua)
81
la memoria Hi-Res) cambiate il valo¬
re di HR (per una figura che va ver¬
so destra) o di HL (per una figura
che va verso sinistra), in modo che
la dimensione HR-HL sia di un byte
più larga della reale larghezza della fi¬
gura. Questo fa sì che immediata¬
mente davanti alla direzione di viag¬
gio della figura venga posta un'inte¬
ra colonna verticale di byte vuoti.
A mano a mano che muovete la
vostra figura attraverso lo schermo
sposterete in avanti di una posizio¬
ne, nella direzione di viaggio, ogni
bit della figura. Il bit più avanzato
di ciascun byte sarà spostato nella
posizione più arretrata del byte che
lo precede immediatamente.
Tenete presente, però, che questo è
più esatto visivamente che tecnica-
mente. A causa dell'effetto di inver¬
sione dei byte Hi-Res, che esamine¬
remo più avanti in qualche esempio,
gli spostamenti di bit non fanno in
realtà proprio quello che sembrano
fare sullo schermo. Ci sono due rou¬
tine di spostamento, SHFTL che
sposta la figura a sinistra e SHFTR
che la sposta a destra. Un p assaggio
attraverso SHFTL o SHFTR muove-
rà l'intera figura di un bit (punto) a
destra o a sinistra. Se volete muover¬
vi di 20 punti in una specifica dire¬
zione dovrete passare 20 volte attra¬
verso SHFTR o SHFTL.
I bit del byte più avanzato della fi¬
gura, intanto, saranno spostati nella
colonna vuota dei byte che sono sta¬
ti aggiunti immediatamente davanti
ai byte della figura. Dopo sette spo¬
stamenti la figura sarà completamen¬
te spostata di un byte, e a questo
punto la colonna di byte vuoti si sa¬
rà portata dietro la figura. In questo
momento i valori di HR e HL sono
entrambi incrementati o decrementa-
ti (a seconda della direzione di viag¬
gio) di modo che la colonna di byte
vuoti è nuovamente davanti alla figu¬
ra, in preparazione dei sette sposta¬
menti successivi.
Invece del ritmo cancellare-muove-
re-disegnare al quale siete abituati, il
ritmo dell’animazione a spostamento
sarà spostare sette volte-muovere
HR/HL-spostare sette volte-muovere
HR/HL... eccetera.
Spostamenti laterali
e routine
I byte della grafica Hi-Res sono vi¬
sualizzati sullo schermo in ordine in¬
verso. Ciò significa che, per muove-
91B2:E6
FE
26
INC
HR
91B4:60
27
RTS
91B5:A5
FD
28 SHFTL
LDA
VB
91B7:85
06
29
STA
YO
91B9:20
91
93
30 L3
JSR
YADDR
91BC : 18
31
CLC
91BD: A4
FE
32
LDY
HR
91BF : A9
00
33 ST
LDA
#0
91C1:8 5
08
34
STA
$8
91C3:85
09
35
STA
$9
91C5:85
07
36
STA
$7
91C7:90
02
37
BCC
CTI
91C9:E6
08
38
INC
$8
91CB:B1
26
39 CTI
LDA
(HBASL) , Y
91CD:C9
80
40
CMP
#$80
91CF: 90
02
41
BCC
CT2
91D1:E6
09
42
INC
$9
91D3:A5
08
43 CT2
LDA
$8
91D5:F0
07
44
BEQ
CT3
91D7:B1
26
45
LDA
(HBASL),Y
91D9:0 9
80
46
ORA
#$80
91DB:4C
E2
91
47
JMP
CT4
91DE:B1
26
48 CT3
LDA
(HBASL)/Y
91E0:29
7F
49
AND
#$7F
91E2:6A
50 CT4
ROR
A
91E3:91
26
51
STA
(HBASL),Y
91E5: 90
02
52
BCC
CT5
91E7:E6
07
53
INC
$7
91E9:A5
09
54 CT5
LDA
$9
91EB:C9
01
55
CMP
#$1
91ED: 90
06
56
BCC
CT6
91EF:B1
26
57
LDA
(HBASL),Y
91F1:09
80
58
ORA
#$80
91F3:91
26
59
STA
(HBASL),Y
91F5:C4
FF
60 CT6
CPY
HL
91F7:F0
08
61
BEQ
NXTLN3
91F9:88
62
DEY
91FA:A5
07
63
LDA
$7
91FC:C9
01
64
CMP
#$1
91FE:4C
BF
91
65
JMP
ST
9201:C6
06
66 NXTLN3
DEC
YO
9203:A5
06
67
LDA
YO
9205:C9
FF
68
CMP
#$FF
9207 :F0
04
69
BEQ
RTN3
9209 :C5
FC
70
CMP
VT
920B:B0
AC
71
BCS
L3
920D: 60
72 RTN3
RTS
920E:A5
FD
73 SHFTR
LDA
VB
9210:85
06
74
STA
YO
9212:20
91
93
75 L4
JSR
YADDR
9215:18
76
CLC
9216 :A4
FF
77
LDY
HL
9218:A9
00
78 STI
LDA
#0
921A:85
08
79
STA
$8
921C: 85
09
80
STA
$9
921E:B1
26
81 SHF
LDA
(HBASL),Y
9220: 2A
82
ROL
A
9221:91
26
83
STA
(HBASL),Y
9223 :B0
02
84
BCS
SI
9225:90
02
85
BCC
CT1A
9227 :E6
08
86 SI
INC
$8
9229-.C9
80
87 CT1A
CMP
#$80
922B:B0
02
88
BCS
SET64
922D: 90
02
89
BCC
CT2A
922F:E6
09
90 SET64
INC
$9
9231 :A5
08
91 CT2A
LDA
$8
9233:D0
09
92
BNE
S2
9235 :B1
26
93
LDA
(HBASL),Y
9237:29
7F
94
AND
#$7F
9239:91
26
95
STA
(HBASL),Y
923B:4C
44
92
96
JMP
S3
923E:B1
26
97 S2
LDA
(HBASL),Y
9240:09
80
98
ORA
#$80
9242:91
26
99
STA
(HBASL),Y
9244:C4
FE
100 S3
CPY
HR
9246 :F0
09
101
BEQ
NXTLN4
9248:C8
102
INY
9249:18
103
CLC
924A-.A5
09
104
LDA
$9
924C:C9
01
105
CMP
#$1
924E:4C
18
92
106
JMP
STI
9251:C6
06
107 NXTLN4
DEC
YO
9253 :A5
06
108
LDA
YO
9255 :C9
FF
109
CMP
#$FF
9257 :F0
04
110
BEQ
RTN4
92 59 :C5
FC
111
CMP
VT
925B:B0
B5
112
BCS
L4
925D: 60
113 RTN4
RTS
*** SUCCESSFUL ASSEMBLY: NO ERRORS
I
** HR=HR+1:HL=HL+1
** DONE-EXIT ROUTINE
** CALL 37301 TO ENTER
** PUT IN $6 FOR USE BY YADDR
** RETURNS-LO=HBASL/HI=HBASH
** SET Y-REGISTER TO RIGHTMOST BYT;
** ZERO-BIT 0 FLAG LAST CYCLE
** ZERO-BIT 7 FLAG
** ZERO-BIT 0 FLAG THIS CYCLE
** IF BIT 0=0 JUMP
** SET-BIT 0 FLAG LAST CYCLE
** GET SHAPE BYTE FROM SCREEN
** IS COLOR BIT SET ?
** NO-JUMP
** SET BIT 7 FLAG
** GET-BIT 0 LAST CYCLE FLAG
** IF IT 1 S CLEAR-JUMP
** GET SHAPE BYTE FROM SCREEN
** SET BIT 7
** BIT SET-CONTINUE
** GET SHAPE BYTE FROM SCREEN
** PUT 0 IN BIT 7
** ROTATE BYTE RIGHT
** LOAD BYTE ON SCREEN
** IF BIT ZERO=0 JUMP
** BUMP 0 BIT FLAG THIS CYCLE
** GET BIT 7 FLAG
** IS IT SET ?
** NO-JUMP
** GET SHAPE BYTE FROM SCREEN
** PUT A 1 IN BIT 7
** LOAD BYTE ON SCREEN
** HAVE WE REACHED HL ?
** YES-GOTO NEXT LINE
** POINT TO NEXT BYTE <—
** GET-0 BIT FLAG THIS CYCLE
** IF 1 SET CARRY WITH CMP
** MOVE UP TO NEXT LINE
** GET NEW Y-COORDINATE
** HAS Y-COORDINATE REACHED 0 ? 1
** YES-WE'RE FINISHED
** HAVE WE REACHED VT YET ?
** NO-START THE NEXT LINE
** DONE-EXIT ROUTINE
** CALL 37390 TO ENTER
** STORE IN $6 FOR USE BY YADDR .
** RETURNS-LO=HBASL/HI=HBASH
** SET Y-REG TO LEFTMOST BYTE
** PUT A 0 IN ACCUMULATOR
** CLEAR BIT 7 FLAG
** CLEAR BIT 6 FLAG
** GET SHAPE BYTE FROM SCREEN
** ROTATE LEFT
** LOAD BYTE BACK ON SCREEN
** IF BIT 7=1 BEFORE SHIFT-JUMP I
** IF BIT 7=0 BEFORE SHIFT-JUMP f
** SET BIT 7 FLAG
** IS BIT 7 NOW A 1 ?
** YES-GO SET BIT 6
** NO-CONTINUE
** SET BIT 6 FLAG
** GET BIT 7 FLAG
** IF IT 1 S SET-JUMP
** GET SHAPE BYTE FROM SCREEN
** PUT A 0 IN BIT 7
** LOAD BYTE TO SCREEN
** BIT 7 OKAY-JUMP
** GET SHAPE BYTE FROM SCREEN
** PUT A 1 IN BIT 7
** LOAD BYTE TO SCREEN
** HAVE WE REACHED HR YET ?
** YES-GOTO NEXT LINE
** POIN*TO NEXT BYTE->
** GET BIT 6 FLAG
** USE CMP TO SET CARRY
** GO SHIFT MORE BYTES
** MOVE UP TO NEXT LINE
** GET NEW Y-COORDINATE
** HAS Y-COORDINATE REACHED 0 ?
** YES-WE*RE FINISHED
** HAVE WE REACHED VT YET ?
** NO-START THE NEXT LINE
** DONE-EXIT ROUTINE
I
BIT
BYTE ORIGINALE 76543210 (mostrato nell'ordine normale)
Stato del bit 0 1 0 0 1 1 0 0 (il movimento apparente sarà a sinistra)
ROR
|-► 7 0 1 0 0 1 1 0 -
CARRY
| - 0 -
Figura 1.
Spostamento verso sinistra con ROR Sullo schermo
8194
8195
8196
8194
8195
8196
START
cooooooo
C1100111
C0111001
0000000
1110011
1001110
Loop 1
C1000000
C1110011
C0011100
0000001
1100111
0011100
Loop 2
CI100000
COI11001
C0001110
0000011
1001110
0111000
Loop 3
CI110000
C0011100
C0000111
0000111
0011100
1110000
Loop 4
C0111000
C1001110
C0000011
0001110
0111001
1100000
Loop 5
C0011100
C1100111
C0000001
0011100
1110011
1000000
Loop 6
C1001110
C1110011
cooooooo
0111001
1100111
0000000
Loop 7
C1100111
COI11001
cooooooo
1110011
1001110
0000000
BUS
76543210
76543210
76543210
0123456
0123456
0123456
Loop 1
CI000000
Lì
C1110011
J—F
C0011100
-4— J
0000001 1100111 0011100
4_1 4_1
spostamento reale
spostamento apparente
Figura 2.
re la figura a destra, si spostano i bit
a sinistra, e per muoverla a sinistra
li si sposta a destra. I nomi delle rou¬
tine indicano la direzione del moto
apparente, non di quello dei bit.
La prima routine di animazione a
spostamento (linee da 73 a 113 d el
listato 1) è denominata SHFTR e
fa muovere la figura da sinistra a de¬
stra attraverso lo schermo: SHFTR
funziona sostanzialmente come le
routine che abbiamo già esaminato,
con la differenza che, come RE-
VDIR, comincia a trattare la figura a
VB/HL anziché a VB/HR come è
normale. Quando userete SHFTR vi
occorrerà sempre almeno una colon¬
na di byte vuoti immediatamente da¬
vanti ai byte della figura (cioè alla
loro destra), il che significa che HR
dev’essere sempre maggiorato alme¬
no di uno. SHFTR comincia a
$920E e prende posto immediata¬
mente sotto le nostre routine di mo¬
vimento verticale.
La seconda routine di spostamento
(linee 2 8-72 del listato 1) è chia¬
mata SHFTL e fa muovere la figura
da destra a sinistra attraverso lo
schermo. Anche SHFTL è molto si¬
mile alle altre routine e comincia a
trattare la figura a VB/HR. Quando
userete SHFTL vi occorrerà sempre
almeno una colonna di byte vuoti
immediatamente a sinistra dei byte
della figura, il che vuol dire che HL
deve essere sempre diminuito alme¬
no di uno. SHFTL comincia a
$91B5 e trova posto immediatamen¬
te prima della routine SHFTR.
Le successive aggiunte al vostro
driver sono le routine di movimen¬
to, che trovano posto immediata¬
mente sotto SHFTL e danno al dri¬
ver la nuova posizione di partenza di
$9197 (linee 12-27 del listato 1).
Scopo delle routine di movimento è
quello di procurare un metodo rapido
e facile per cambiare i valori di HR
e HL. Chiamando uno dei vari punti
d'ingresso possibili si può usare la
routine per INCrementare o DECre-
mentare HR e HL di uno o due, o
INCrementare o DECrementare HR
soltanto. Inoltre la routine fa un con¬
trollo per assicurarsi che non permet¬
tiate accidentalmente a SEFTL di
superare l’orlo sinistro dello scher¬
mo e bloccare il programma, con un
valore negativo di HL.
Per aggiungere al driver queste
nuove routine si usa il Tool Kit As¬
sembler o semplicemete si caricano
con BLOAD le vecchiè routine (Ap¬
plicando n. 27 pag. 67) aggiungendo
i byte esadecimali delle nuove. A co¬
loro che hanno poca pratica con V As¬
sembler sarà utile il listato 11,
che è il dump esadecimale dell’intero
drive e comprende sia il drive pubbi-
cato sul numero 27 di Applicando
sia le routine disassemblate dei lista¬
ti 1 e 6. Si salva con BSAVE BLO¬
CK ROUTENES, A$911A, L$4E6.
Come funzionano le
routine di spostamento
Ogni routine comincia dalla riga
più bassa di byte di schermo occupa¬
ta dalla figura, al byte più arretrato,
poi percorre ogni riga orizzontale di
byte dal retro (da cui proveniamo) al
davanti (dove andiamo), fino a che
sono state elaborate tutte le righe.
I comandi chiave di ciascuna routi¬
ne sono i comandi ROL, di rotazio¬
ne a sinistra (ROtate Left), e ROR,
di rotazione a destra (ROtate Right).
Vediamo dunque cosa accade, usando
come esempio ROR (figura 1).
Quando si fa il ROR del byte ruo¬
tandolo a destra, il contenuto del car-
ry (un bit speciale nel registro di sta¬
to del 6502) viene spinto nel bit 7,
che spinge tutti gli altri bit a destra
di una posizione. Poi il bit 0 se ne
va e finisce nel carry. Con varie pro¬
ve, impostando differenti flag, ognu¬
na delle routine di spostamento è in
grado di individuare e influenzare il
contenuto del carry e di tenere impo¬
stato a dovere il bit colore.
Mediante questi flag le routine so¬
no in grado di spingere tutti i bit in
là di una posizione, e sanno se ag¬
giungere uno 0 o un 1 al byte suc¬
cessivo. Il valore che viene spinto
fuori del bit 0 e dentro il carry è in
realtà inteso per il bit 6 del byte adia¬
cente sulla sinistra.
Per avere un esempio del modo in
cui funziona una routine di sposta¬
mento guardate la figura 2, che
mostra SHFTL impegnata a muove¬
re a sinistra di sette punti (un byte)
una figura larga due byte. La figura
campione sarà alta soltanto un byte
(veramente grande), e avrà sullo
schermo questo aspetto: 1110011-
1001110. Nel nostro esempio non
ci preoccuperemo del bit colore (sup¬
porremo che sia uno zero), e mostre¬
remo solo i cambiamenti dei bit che
appaiono sullo schermo.
Quando l’abbiamo disegnata in ori¬
gine, la figura era larga due byte e ri¬
siedeva nei byte 8195 e 8196 a
HR=4, HL=3. Per poter usare la rou¬
tine SHFTL si è poi cambiato HL
in HL=2, aggiungendo il byte vuoto
davanti alla figura a 8194. Potete
83
Listato 2. Spostamento
vedere che dopo sette spostamenti la
figura si è spostata a sinistra, di mo¬
do che il byte vuoto che in partenza
era davanti alla figura adesso è dietro
di essa. Dovreste anche notare che
mentre i veri valori di HR e HL era¬
no rispettivamente 4 e 3 prima dei
sette spostamenti, essi sono diventa¬
ti, dopo i sette spostamenti, rispetti¬
vamente 3 per HR e 2 per HL.
Vedrete che i bit danno l’impressio-
ne di muoversi in avanti, andando
nel nuovo byte, nei byte del display;
DOS 3.3
Apple Ile
ma ciò che accade in realtà nei byte
ruotati a destra con ROR è diverso.
I bit che con la rotazione vengono
fatti uscire da 8194 (HL) non vanno
da nessuna parte. Il punto interrogati¬
vo che vedete è in realtà un enorme
buco nero nello spazio, e i bit che
vengono spostati fuori di HL finiran¬
no per cadervi. Ma non importa, per¬
ché quei bit 0 non ci servono. In o-
gni modo farete bene a badare a non
spostarvi attraverso HL più di sette
volte, altrimenti comincerete a man¬
dare in quello stesso buco nero an¬
che la vostra figura.
Dopo aver fatto sette spostamenti
dovete cambiare HR e HL. Se vi sta¬
te muovendo a sinistra dovete decre-
mentare HR e HL ogni sette sposta¬
menti, e se vi state muovendo a de¬
stra dovete incrementare HR e HL o-
gni sette spostamenti.
Ma proviamo a fare un poco di
spostamento. Per eseguire le prove
che affronteremo adesso dovrete anzi¬
tutto aggiungere al driver BLOCK
SHAPE ROUTINES $925E (Appli¬
cando n. 27, p ag. 67) le routine
SHFTR, SHFTL e MOVE (listato
1). Dopo averle aggiunte, salvate il
tutto sul dischetto con il nome BLO¬
CK ROUTINES ,A$9197 ,L$469.
Ora caricatele in memoria con
BLOAD con la figura esemplificati¬
va di astronave #144 (listato 9), e
introducete le linee del programma
in Applesoft del listato 2.
La prima cosa che dovreste notare
facendo girare questo programma è
con quanta scorrevolezza si muove
la figura, e così pure la totale assen¬
za di qualsiasi sfarfallio, per quanto
stiamo facendo tutto il lavoro su u-
na sola pagina. Normalmente per far
correre tanto bene una figura occorre¬
rebbe lo scambio di pagine.
Vediamo adesso come funziona il
programma. La linea 10 si occupa di
predisporre la grafica, YTABLE e il
numero di figura. La linea 20 impo¬
sta i valori iniziali di VT, VB, HR e
HL, poi disegna la figura iniziale.
La linea 30 incrementa HR per ag¬
giungere a destra una colonna di
byte vuoti. La linea 50 imposta il
numero dei byte attraverso cui ci
sposteremo. La linea 60 sposta per
sette volte attraverso i byte correnti
(muovendo verso destra). La linea
70 incrementa HR e HL in prepara¬
zione dei sette spostamenti succes¬
sivi. La linea 80 fa passare a sinistra
la colonna di byte vuoti per il viag¬
gio di ritorno. La linea 110 sposta
per sette volte Atraverso i byte cor¬
renti (muovendo verso sinistra). La
linea 120 decrementa HR e HL in
preparazione dei sette spostamenti
successivi.
Come potete vedere il programma
è semplice e lineare. Tutto quel che
fa è impiegare dei loop per poter
chiamare sette volte una routine di
spostamento, e poi cambiare HR e
HL prima di chiamare altre sette vol¬
te la stessa routine di spostamento.
Ricordate che questo è solo un test
Sommario dei
nuovi punti di ingresso al Driver
nome
indirizzo
indirizzo
funzione
SHFTR
373§0
$920E
sposta l’intera figura a blocco di 1 punto a destra
SHFTL
37301
$91B5
sposta l'intera figura a blocco di 1 punto a sinistra
MOVEL2
37271
$9197
sottrae 2 da HR e HL
37279
$919F
sottrae 2 da HR/sottrae 1 da HL
MOVEL1
37281
$91A1
sottrae 1 da HR e HL
37289
$91A9
sottrae 1 da HR
MOVER2
37292
$91 AC
aggiunge 2 a HR e HL
37294
$91AE
aggiunge 2 a HR/aggiunge 1 a HL
MOVER1
37296
$91B0
aggiunge 1 a HR e HL
37298
$91B2
aggiunge 1 a HR
SETCTR
37146
$911A
imposta su 14 il contatore dei loop di spostamento
DRAW1
37154
$9122
imposta su display pagina 1/disegno pagina 2
37159
$9127
imposta su disegno pagina 2
DRAW2
37164
$912C
imposta su disegno pagina 2/disegno pagina 1
37169
$9131
imposta su disegno pagina 1
SHFTR4
37174
$9136
esegue completo spostamento e scambio pagine a destra
pagina 2 - sposta di 4 punti/aziona il contatore due volte
pagina 1 - sposta di 4 punti/aziona il contatore due volte
37180
$913C
sposta soltanto pagina 1
sposta di 4 punti/aziona il contatore due volte
37192
$9148
sposta di 2 punti/aziona il contatore una volta
(dovete impostare per pagina 1 prima di introdurre qui,
altrimenti sposterete pagina 2 di 2 punti/azionerete
il contatore una volta, poi sposterete pagina 1 di 4 punti/
azionerete il contatore due volte)
SHTFL4
37208
$9158
come SHFTR4 ma muove a sinistra
37214
$915E
come 37180 ma muove a sinistra
37226
$916A
come 37192 ma muove a sinistra
MVCTRR
37242
$917A
aziona contatore/fa test per 14 doppi spostamenti - se 14
aggiunge 2 a HR e HL/reimposta il contatore su 14
MVCTRL
37258
$918A
aziona il contatore/fa test per 14 doppi spostamenti - se 14
sottrae 2 da HR e HL/reimposta il contatore su 14
Apple Ile
5 REM RICHIEDE BLOCK ROUTINES E L'ASTRONAVE #144
10 HGR : CALL 37799: POKE 251,144
20 POKE 252,10: POKE 253,21: POKE 254,2: POKE 255,0: CALL 37679
30 CALL 37298: REM INCREMENTA HR-AGGIUNGE UNA COLONNA DI BYTE VU
OTI SULLA DESTRA
50 FOR X = 0 TO 35
60 FOR Y = 1 TO 7: CALL 37390: NEXT : REM SPOSTA DI 1 BYTE A DES
TRA
70 CALL 37296: REM INCREMENTA HR/HL
80 NEXT : CALL 37281: REM SPOSTA LA COLONNA VUOTA IN AVANTI/A SI
NISTRA
100 FOR X = 0 TO 35
110 FOR Y = 1 TO 7: CALL 37301: NEXT : REM SPOSTA DI 1 BYTE/A SI
NISTRA
120 CALL 37281: REM DECREMENTA HR/HL
130 NEXT X
140 GOTO 50
84
sul funzionamento delle routine. In
un autentico ambiente di programma
è sconsigliabile ricorrere per fanima-
zione a ordinari loop FOR...NEXT:
sono facili e comodi, ma ci sono
modi più rapidi per costruire i loop.
Inversione e
scambio di pagine
Adesso proviamo a fare un po' di
spostamento con inversione dei lati
della figura. Per eseguire questo test
dovrete prima ricaricare la figura e-
semplificativa #146 (l’autofurgone
Arkansas Good-Ole-Boy - listato
10). Dato che abbiamo aggiunto al¬
tre routine al nostro driver non potre¬
te più eseguirla come FURGONE
#146; perciò trasferiamola adesso a
$9000 e rinominiamola FURGONE
#144. Quando l'avrete in memoria
andate in Monitor (CALL -151) e
poi usate il comando MOVE del Mo¬
nitor 9000<9200.9259M per il tra¬
sferimento. Una volta che è trasferi¬
ta risalvatela sul dischetto con BS A-
VE FURGONE #144,A$9000,L90.
Dovrete anche ricaricare il driver
(lo avete danneggiato caricando la
vecchia figura del camion) e poi in¬
trodurre le linee del programma in
Applesoft del listato 3.
Quando farete girare questo pro¬
gramma vedrete l’autocarro che scor¬
re attraverso lo schermo e inverte di¬
rezione prima di fare il viaggio di ri¬
torno. Tornato alla posizione di par¬
tenza farà di nuovo dietrofront, di
modo che sarà sempre rivolto nella
direzione giusta. Dato che la routine
REVDIR fa il suo lavoro sullo
schermo, la figura non sfarfallerà
mai, nemmeno durante l’azione d’in¬
versione della posizione. Esaminia¬
mo anzitutto il programma com’è
scritto, poi vedremo come migliorar¬
lo eliminando qualche passo.
Le linee 10-70 fanno tutte le stes¬
se cose del listato 1 , con la diffe¬
renza che variano i valori di VT,
VB, HR e HL. La linea 80 prima ri¬
muove la colonna supplementare di
byte che c’è davanti alla figura, ri¬
portando questa alle sue vere dimen¬
sioni, poi in verte i lati della figura.
Quando questa è invertita la colonna
supplementare di byte viene rimessa
a posto e trasferita sulla sinistra. La
linea 130 rimuove nuovamente la co¬
lonna supplementare di byte, inverte
la figura e rimette a posto la colon¬
na supplementare di byte.
Il programma ha funzionato molto
Listato 3. Spostamento e inversione
5 REM RICHIEDE BLOCK ROUTINES E IL FURGONE #144
10 HGR : CALL 37799: POKE 251,144
20 POKE 252,130: POKE 253,144: POKE 254,5: POKE 255,0: CALL 37679
30 CALL 37298: REM AGGIUNGE UNA COLONNA DI BYTE VUOTI/A DESTRA
50 FOR X = 0 TO 33
60 FOR Y = 1 TO 7: CALL 37390: NEXT : REM SPOSTA DI 1 BYTE
70 CALL 37296: REM INCREMENTA HR/HL
80 NEXT : CALL 37289: CALL 37606: CALL 37298: CALL 37281: REM RI
MUOVE IL BYTE INIZIALE/INVERTE/RIPRISTINA IL BYTE INIZIALE/INV
ERTE IL BYTE INIZIALE
100 FOR X = 0 TO 33
110 FOR Y = 1 TO 7: CALL 37301: NEXT : REM SPOSTA DI 1 BYTE A SI
NISTRA
120 CALL 37281: REM DECREMENTA HR/HL
130 NEXT : CALL 37289: CALL 37606: CALL 37298
140 GOTO 50
DOS 3.3
Apple Ile
Apple Ile
bene. Tuttavia eliminando i passi ag¬
giuntivi richiesti prima di ogni in¬
versione per ripristinare le vere di¬
mensioni HR-HL si accelererebbe l’e¬
secuzione risparmiando memoria.
Finora abbiamo disegnato la figu¬
ra nella sua vera posizione HR/HL,
aggiungendole poi davanti una colon¬
na di byte vuoti. Vediamo adesso
che cosa accadrebbe se facessimo di¬
ventare la colonna vuota una parte
permanente della figura.
Prima di introdurre il listato 4
modificate la tavola delle figure me¬
diante il listato 3: aggiungete al
listato 3 questa linea: 35 STOP. A-
desso fate girare il listato 3. A que¬
sto punto la vostra figura sarà sullo
schermo, e HR/HL saranno imposta¬
te a dovere con una colonna di byte
vuoti sul davanti (cioè sulla destra)
della figura. Ora fate CALL 37729,
chiamando SCAN per creare una
nuova tavola delle figure, e salvatela
sul dischetto con BSAVE FURGO¬
NE* 1#144,A$9000,L105. Adesso
potete cancellare il listato 3 e intro¬
durre il listato 4, che come noterete
è molto più semplice del listato 3.
Quando eseguirete il listato 4 sco¬
prirete che gira bene come il nostro
test precedente, pur avendo meno i-
struzioni. Non riuscirete probabil¬
mente a rilevare alcuna differenza di
velocità, ma in un programma in
cui si manipolano molte figure le
differenze potrebbero essere evidenti.
Ecco come funziona il listato 4: la
linea 10 fa ancora quello che faceva
nelle precedenti prove. La linea 20 è
uguale a prima, tranne il fatto che
FIR è passato adesso da 5 a 6. Non
c’è linea 30. Non abbiamo bisogno
di aggiungere la colonna supplemen¬
tare di byte perché è già incorporata
nella nostra figura. Gli altri soli
cambiamenti si trovano nelle linee
80 e 130. La linea 80 non fa che can¬
cellare l’ultimo incremento di
HR/HL dalla linea 70 e invertire la
figura, il che mette inoltre a sinistra
la colonna di byte vuoti. La linea
POKE SPECIALI da usare con il driver:
POKE 37201,96 POKE 37235,96 Modificano SHFTR4 e SHFTL4 per
cancellare lo scambio di pagine automatico e trattare solo una pagina
alla volta (per l’uso con figure multiple).
POKE 37201,165 POKE 37235,165 Ripristinano SHFTR4 e SHFTL4 al
normale scambio di pagine (per l’uso con una sola figura).
Come dovreste ricordare dalle nostre precedenti trattazioni, quando
avete a che fare con più di una figura alla volta dovete spostare tutte le
vostre figure su un'unica pagina prima di scambiare le pagine. Quando
avete a che fare con più di una figura introducete prima i POKE
occorrenti per annullare lo scambio di pagine, poi chiamate SHFTR4 o
SHFTL4 per spostare a pagina 2. Quindi trasferite le altre vostre figure
su pagina 2. Infine introducete SHFTR4 o SHFTL4 a 37180 o 37214 per
scambiare le pagine e spostare la figura su pagina 1, dopo di che
dovrete completare il movimento per le altre vostre figure su pagina 1.
I primi due POKE sostituiscono con RTS il LDA delle linee 31 e 45 del
listato 6, e i secondi due POKE ricollocano il LDA nelle stesse linee.
85
Listato 4. Mantenimento colonna di byte vuoti
5 REM RICHIEDE BLOCK ROUTINES E IL FURGONE+1 #144
10 HGR : CALL 37799: POKE 251,144
20 POKE 252,130: POKE 253,144: POKE 254,6: POKE 255,0: CALL 37679
50 FOR X - 0 TO 33
60 FOR Y * 1 TO 7: CALL 37390: NEXT : REM SPOSTA DI 1 BYTE
70 CALL 37296: REM INCREMENTA HR/HL
80 NEXT : CALL 37281: CALL 37606: REM INVERTE LA FIGURA
100 FOR X - 0 TO 33
110 FOR Y - 1 TO 7: CALL 37301: NEXT : REM SPOSTA DI 1 BYTE A SI
NISTRA
120 CALL 37281: REM DECREMENTA HR/HL
130 NEXT : CALL 37606: REM INVERTE LA FIGURA
140 GOTO 50
DOS 3.3
Apple Ile
Apple Ile
Listato 5. Versione in L.M.
del listato 4
800.851
0800-
20
A7
93
A9
90
85
FB
A9
0808-
82
85
FC
A9
90
85
FD
A9
0810-
06
85
FE
A9
00
85
FF
20
0818-
2F
93
A9
21
85
EB
A9
07
0820-
85
EC
20
0E
92
C6
EC
DO
0828-
F 9
20
B0
91
C 6
EB
DO
EE
0830-
20
Al
91
20
E 6
92
A9
21
0838-
85
EB
A9
07
85
EC
20
B5
0840-
91
C6
EC
DO
F9
20
Al
91
0848-
C6
EB
DO
EE
20
E6
92
4C
0850-
1A
08
Salvare con:
BSAVE LISTATO 5,A$800,L83
130 non fa che invertire la figura, oc¬
cupandosi anche qui della colonna di
byte vuoti.
In sostanza nel listato 4 abbiamo
fatto della colonna di byte vuoti una
parte permanente della figura. Ogni
volta che attraversiamo uno dei loop
di sette spostamenti inviamo questa
prima colonna di byte vuoti della ta¬
vola delle figure nel famigerato buco
nero dello spazio. Tuttavia, dato che
la rimettiamo a posto quando incre¬
mentiamo o decrementiamo HR/HL
ogni sette spostamenti, va bene co¬
sì, perché non ci spostiamo mai tan¬
to in là da danneggiare la figura vera
e propria, che comincia solo con la
seconda colonna di byte della tavola.
Il dump esadecimale del listato
5 è una versione in linguaggio mac¬
china del listato 4. Per usarlo dovre¬
te mettere in memoria il driver e
FURGONE+1 #144, poi introdurre
i byte esadecimali tramite il Moni¬
tor partendo da $800. Poi introduce¬
te HGR e fate CALL 2048.
Questo volta il vostro autocarro si
muoverà molto più rapidamente at¬
traverso lo schermo. Adesso vedre¬
mo come trattare laminazione a spo¬
stamento mediante lo scambio di pa¬
gine, che probabilmente userete in
molti dei vostri programmi.
Passare allo scambio di pagine
con l'animazione a spostamento è ab¬
bastanza semplice; ci sono però due
differenze. La prima è che invece di
muovere un solo punto per mossa
passeremo a due punti per mossa,
un movimento ancora piccolo a suf¬
ficienza perché laminazione resti pia¬
cevole e scorrevole.
Un vantaggio importante dell'uso
dellanimazione a scambio di pagine
è la protezione del colore. Se aveste
usato nelle precedenti prove di spo¬
stamento a un bit una figura conte¬
nente colore questo avrebbe sfarfalla¬
to a ogni spostamento.
Con lo scambio di pagine visualiz¬
zeremo la figura solo ogni due spo¬
stamenti, e questo terrà sempre i bit
su coordinate DISPARI o PARI, eli¬
minando ogni cambiamento visibile
del colore.
Lasecondadifferenzaèchemettere-
mo sempre due colonne di byte vuo¬
ti immediatamente davanti ai byte
della figura, e faremo un doppio in¬
cremento di HR e HL ogni sette spo¬
stamenti. Per mantenere facile il la¬
voro incorporeremo nella nostra fi¬
gura le due colonne supplementari di
byte vuoti.
Velocizzazione
e miglioramenti
E' stata ormai presentata la mag¬
gioranza delle parti essenziali del dri¬
ver. Le routine che esaminiamo ades¬
so non sono altro che routine genera¬
lizzate, intese a combinare diverse i-
struzioni e chiamate dell Applesoft
in un'unica routine in linguaggio
macchina, che contribuisca a far ri¬
sparmiare memoria, accelerare l'ese¬
cuzione e rendere più facile il debug¬
ging del programma finito.
La routine SETCTR viene usata
per impostare o reimpostare su 14
il contatore dei loop di spostamento,
in modo da potere tener nota del pun¬
to in cui ci si trova nei loop, e del
Listato 6. Routine SHIFT e FLIP
SOURCE FILE: LISTATO 6
-NEXT
OBJECT FILE NAME
, IS
LISTATO 6.
, OB J0
911A:
1
ORG
$911A
91B5:
2
SHFTL
EQU
S91B5
920E :
3
SHFTR
EQU
$920E
9197:
4
MOVEL2
EQU
$9197
91AC:
5
MOVER2
EQU
$91 AC
00FB:
6
BASH
EQU
$FB
**
SHAPE # (251)
911A:A9
0E
7
SETCTR
LDA
#14
* ★
CALL 37146 TO ENTER
911C:A6
FB
8
LDX
BASH
★ *
SET X-REGISTER OFFSET
911E:9D
6F
8F
9
STA
$8F6F,X
* *
RESET COUNTER TO 14
9121:60
10
RTS
**
DONE-EXIT
9122 :A9
00
11
DRAW1
LDA
#0
★ *
CALL 37154 TO ENTER
9124:8D
54
CO
12
STA
$C054
**
DISPLAY PAGE 1
9127:A9
40
13
LDA
#$40
9129:85
E6
14
STA
$E6
* *
DRAW PAGE 2
912B:60
15
RTS
* *
DONE-EXIT
912C:A9
00
16
DRAW2
LDA
#0
* *
CALL 37164 TO ENTER
912E:8D
55
CO
17
STA
$C055
* *
DISPLAY PAGE 2
9131 :A9
20
18
LDA
#$20
9133:85
E6
19
STA
$E6
* ★
DRAW PAGE 1
9135:60
20
RTS
★ *
DONE-EXIT
9136:20
22
91
21
SHFTR4
JSR
DRAW1
* *
CALL 37174 TO ENTER
9139:18
22
CLC
* *
SET-UP FOR JUMP
913A:90
03
23
BCC
J2
★ *
GO SHIFT PAGE 2
913C: 20
2C
91
24
J1
JSR
DRAW2
**
SHIFT PAGE 1 (CALL 37180)
913F:20
0E
92
25
J2
JSR
SHFTR
★ *
FIRST SHIFT
9142:20
0E
92
26
JSR
SHFTR
**
SECOND SHIFT
9145:20
7A
91
27
JSR
MVCTRR
**
DEC CTR/TEST 14 SHIFTS
9148:20
0E
92
28
JSR
SHFTR
* ★
THIRD SHIFT (CALL 37192)
914B:20
0E
92
29
JSR
SHFTR
* *
FOURTH SHIFT
86
Listato 7. Espansione delle capacità della figura
10 HGR : HGR2 : CALL 37799: POKE 251,144
20 POKE 252,130: POKE 253,144: POKE 254,7: POKE 255,0
30 CALL 37679: REM DISEGNA LA FIGURA A PAGINA 2
35 CALL 37146: REM IMPOSTA L'INIZIO DEL CONTATORE=14
40 POKE 230,32: CALL 37679: CALL 37192: REM DISEGNA A PAGINA 1/S
POSTA A DESTRA DI 2/DEC CONTATORE
50 FOR X = 1 TO 56
60 CALL 37174: NEXT
70 POKE 230,32: CALL 37226: CALL 37679: REM MUOVE INDIETRO DI 2/
CANCELLA PAGINA 1
80 POKE 230,64: CALL 37606: REM INVERTE PAGINA 2
85 CALL 37146: REM REIMPOSTA CONTATORE=14
90 POKE 230,32: CALL 37679: CALL 37226: REM DISEGNA A PAGINA 1/M
UOVE AVANTI DI 2
100 FOR X « 1 TO 56
110 CALL 37208: NEXT
120 POKE 230,32: CALL 37192: CALL 37679: REM MUOVE INDIETRO DI 2
/CANCELLA PAGINA 1
130 POKE 230,64: CALL 37606: REM INVERTE PAGINA 2
140 GOTO 35
DOS 3.3
Apple He
Apple Ile
Listato 8. Versione in L.M.
dei listato 7
800.86C
0800-
20
Al
93
A9
90
85
FB
85
0808-
FD
A9
82
85
FC
A9
07
85
0810-
FE
A9
00
85
FF
20
2F
93
0818-
20
1A
91
A9
20
85
E6
20
0820-
2F
93
20
48
91
A9
38
85
0828-
1B
20
36
91
C6
1B
DO
F9
0830-
A9
20
85
E6
20
6A
91
20
0838-
2F
93
A9
40
85
E6
20
E6
0840-
92
20
1A
91
A9
20
85
E6
0848-
20
2F
93
20
6A
91
A9
38
0850-
85
1B
20
58
91
C6
1B
DO
0858-
F9
A9
20
85
E6
20
48
91
0860-
20
2F
93
A9
40
85
E6
20
0868-
E6
92
4C
18
08
Salvare con:
BSAVE LISTATO 8,A$800,L110
momento in cui occorre cambiare i
valori di HR e HL. Si è costruita u-
na tavola dei contatori, che è situata
alla fine della pagina 143 della me¬
moria.
Aggiungendo altre routine al dri¬
ver potreste scoprire che dovete spo¬
stare la tavola più in basso, magari
a $8E6F o a $8D6F. Per far questo
basta cambiare l'indirizzo che si vede
nelle linee 9, 50, 54 e 57. Con la
presente configurazione ci saranno
contatori separati allocati a ogni sin¬
golo numero di figura, con il conta¬
tore #144 all'ultimo byte della pagi¬
na, e ciascun numero di figura-nume¬
ro di contatore al byte inferiore adia¬
cente. Potete immaginare la tavola
come una matrice in Applesoft.
Se avete a che fare soltanto con
qualche figura potreste prendere in
considerazione per i vostri contatori
l'impiego di un indirizzo non utiliz¬
zato della pagina zero. L'esecuzione
ne sarà accelerata; dovrete però rive¬
dere un po' il driver.
Se avete a che fare con una figura
lunga più di una pagina, dovrete
cambiare alquanto le cose, perché u-
na volta che BASH sarà stato incre¬
mentato dalla routine DRAW o RE-
VDIR il vostro numero di figura
punterà al contatore sbagliato. Se
state impaccando più di una figura
per pagina questo metodo non fun¬
zionerà affatto. State solo in guardia
contro i potenziali rischi menzionati
per le altre configurazioni, e badate a
non lasciare che eventuali tavole del¬
le figure a pagina 143 invadano la
tavola dei contatori. Il byte più bas¬
so utilizzato nella tavola dei contato¬
ri sarà $8F6F+(valore del numero di
figura più basso).
Le routine DRAW1 e DRAW2 del
listato 6 non fanno che impostare
la pagina su cui disegnare e la pagi¬
na da visualizzare. Il nome della rou¬
tine indica quale pagina sarà visualiz¬
zata durante le presenti operazioni di
disegno. _
Le routine SHFTR4 e SHFTL4
sono le routine di spostamento a
scambio di pagine, e gestiscono la
parte più importante della manipola¬
zione di spostamento.
SHFTR4 muove la figura a destra
914E
20
7A
91
30
JSR
MVCTRR
★ ★
DEC CTR/TEST 14 SHIFTS
9151
A5
E6
31
LDA
$E6
★ ★
WHAT PAGE ARE WE ON?
9153
C9
40
32
CMP
#$40
**
ARE WE ON PAGE 2?
9155
F0
E5
33
BEQ
J1
★ ★
YES-NOW DO PAGE 1
9157
60
34
RTS
★ *
DONE-EXIT ROUTINE
9.158
20
22
91
35
SHFTL4
JSR
DRAW1
★ ★
CALL 37208 TO ENTER
915B
18
36
CLC
★ ★
SET-UP FOR JUMP
915C
90
03
37
BCC
J4
*★
GO SHIFT PAGE 2
915E
20
2C
91
38
J3
JSR
DRAW 2
★ ★
SHIFT PAGE 1 (CALL 37214)
9161
20
B5
91
39
J 4
JSR
SHFTL
★ ★
FIRST SHIFT
9164
20
B5
91
40
JSR
SHFTL
★ *
SECOND SHIFT
9167
20
8A
91
41
JSR
MVCTRL
★ ★
DEC CTR/TEST 14 SHIFTS
91 6A
20
B5
91
42
JSR
SHFTL
★ *
THIRD SHIFT (CALL 37226)
91 6D
20
B5
91
43
JSR
SHFTL
★ ★
FOURTH SHIFT
9170
20
8A
91
44
JSR
MVCTRL
★ ★
DEC CTR/TEST 14 SHIFTS
9173
A5
E6
45
LDA
$E6
★ *
WHAT PAGE ARE WE ON?
9175
C9
40
46
CMP
#$40
**
ARE WE ON PAGE 2?
9177
F0
E5
47
BEQ
J3
*★
YES-NOW DO PAGE 1
9179
60
48
RTS
*★
DONE-EXIT ROUTINE
917A
A6
FB
49
MVCTRR
LDX
BASH
★ *
CALL 37242 TO ENTER
917C
DE
6F
8F
50
DEC
$8F6F,X
★ ★
DECREMENT COUNTER
917F
DO
08
51
BNE
J5
★ ★
LESS THAN 14 SHIFTS-JUMP
9181
20
AC
91
52
JSR
MOVER2
★ ir
DOUBLÉ INCREMENT HR/HL
9184
A9
0E
53
J 6
LDA
#14
★ ★
RESET SHIFT-
9186
9D
6F
8F
54
STA
$8F6F,X
ir ir
COUNTER TO 14
9189
60
55
J5
RTS
ir
* DONE-EXIT ROUTINE
918A
A6
FB
56
MVCTRL
LDX
BASH
ir ★
CALL 37258 TO ENTER
918C
DE
6F
8F
57
DEC
$8F6F,X
★ ★
DECREMENT COUNTER
918F
DO
F8
58
BNE
J5
★ ★
LESS THAN 14 SHIFTS-JUMP
9191
20
97
91
59
JSR
MOVEL2
★ ★
DOUBLÉ DECREMENT HR/HL
9194
18
60
CLC
★ ★
SET-UP FOR JUMP
9195
90
ED
61
BCC
J6
irir
GO TO COUNTER RESET
*** SUCCESSFUL ASSEMBLY: NO ERRORS
Listato 9. Astronave #144
9000.9025
9000- 00 OC 00 00 7F 40 03 7F
9008- 70 07 7F 78 0F 7F 7C 1F
9010- 7F 7E 39 4C 67 3F 7F 7F
9018- 0F 7F 7C 03 7F 70 00 7F
9020- 40 00 1E 00 02 01
Salvare con:
BSAVE ASTRONAVE #144,AS9000,L39
Listato 10: Furgone #146
9200.
9259
9200-
00
78
00
9208-
00
00
3F
9210-
3.F
00
OD
9218-
1E
79
7F
9220-
7F
7F
40
9228-
7F
7E
1F
9230-
1F
7F
7F
9238-
7F
7F
7F
9240-
00
00
00
9248-
00
00
30
9250-
38
18
00
9258-
00
00
00
1E
00
01
7C
00
01
7C
00
00
7D
7F
7F
3F
3E
7F
1E
3E
1E
03
7E
1F
7F
7F
7F
7F
7F
7F
7F
7E
7F
7F
7E
0F
7F
7E
00
00
60
18
00
70
18
00
00
18
00
00
00
00
00
00
00
00
78
Salvare con:
BSAVE FURGONE #146,AS9200, L91
87
e SHFTL4 la muove a sinistra. Du¬
rante la nostra analisi del loro funzio¬
namento tenete presente la figura
3.
Ecco come funzionano queste rou¬
tine. Il formato normale di introdu¬
zione di una routine di scambio di
pagine è sempre consistito nel visua¬
lizzare prima la pagina 1 manipolan¬
do la pagina 2, poi di scambiare le
pagine, ripetere il procedimento e u-
scire dalla routine. Useremo qui que¬
sto stesso formato. Le due routine
funzionano allo stesso modo, e quin¬
di usiamo SHFTR4 per vedere che
cosa fanno.
Le linee 21-23 predispongono il
nostro formato visualizzare 1-dise¬
gnare 2 e saltano a linea 25.
Le linee 25-26 spostano la figura
di due punti a destra (alle stesse coor¬
dinate di pagina 1).
La linea 27 salta a MCVTRR do¬
ve il contatore viene decrementato e
testato per vedere se indichi 14 spo¬
stamenti. Se il contatore indica me¬
no di 14 spostamenti (in realtà si
tratta di 14 doppi spostamenti) la
routine ritorna a linea 28. Se avete
completato 14 spostamenti saltate a
MOVER2 dove viene fatto un dop¬
pio incremento di HR e HL. Poi il
contatore viene rimesso a 14 e torna¬
te di nuovo a linea 28.
Le linee 28-30 non fanno che ripe¬
tere le azioni di 25-27, lasciando la
figura di pagina 2 mossa di due pun¬
ti davanti alla pagina 1. Le linee 31-
33 fanno un test per vedere su quale
pagina stiate disegnando al momen¬
to. Se siete a pagina 2 la routine sal¬
ta a linea 24, dove avviene lo scam¬
bio di pagine, dopo di che scendete a
eseguire nuovamente le linee 25-30.
Quando arrivate alle linee 31-33
sarete questa volta sulla pagina 1
con la sua figura due punti davanti
alla pagina 2, e a questo punto usci¬
rete dalla routine.
Come potete vedere SHFTR4 e
SHFTL4 fanno per voi l'intero scam¬
bio di pagine. Le routine MVCTRR
e MVCTRL non fanno che gestire il
decremento del contatore, reimpo¬
standolo quando sono stati completa¬
ti 14 doppi spostamenti, e facendo il
doppio incremento (o decremento) di
HR e HL quando occorre.
Come funziona
lo scambio di pagine
Guardiamo l'esempio di figura
3, dove X indica il punto all'estrema
destra della figura, per vedere come u-
tilizzare le routine.
Per elaborare la figura bisogna di¬
segnarla sulla pagina 2 dell'alta riso¬
luzione a X=0. Poi si disegna la fi¬
gura sulla pagina 1 Hi-Res e la si
sposta in avanti di due punti a X=2,
decrementandoilcontatoreperindica-
re che è stato completato un doppio
spostamento.
In questo momento siete nella po¬
sizione di partenza appropriata, con
la figura di pagina 1 due punti davan¬
ti alla figura di pagina 2. Per il resto
del vostro viaggio attraverso lo
schermo la routine SHFTR4 farà tut¬
to quanto occorre per continuare il
movimento verso destra.
Al termine del primo loop attraver¬
so SHFTR4 il contatore sarà su 5 e
la figura sarà a 6-pagina 1 e a 4-pagi-
na 2. Dopo il secondo loop il conta¬
tore indicherà 9 e la figura sarà a 1 fi-
pagina 1 e a 8-pagina 2. Il terzo
loop finirà con il contatore su 13 e
la figura a 14-pagina 1 e a 12-pagina
2. Non appena farete il primo dop¬
pio spostamento a pagina 2 durante
il loop 4 il contatore avrà raggiunto
14, e a questo punto ci sarà un dop¬
pio incremento sia di HR sia di HL.
Quando completerete il loop 4 il
contatore indicherà 3 e la figura sarà
a 18-pagina 1 e a 16-pagina 2. Que¬
sta spiegazione del contenuto del
contatore è inserita per ragioni di
chiarezza ma non è tecnicamente e-
satta. In realtà non partiamo da 0 e
non contiamo fino a 14; partiamo in¬
vece da 14 e facciamo un test per ve¬
dere quando avremo raggiunto 0.
Ora che abbiamo esaminato i parti¬
colari proviamo a costruire un pro¬
gramma che faccia andare il nostro
autofurgone su e giù attraverso lo
schermo, e lo inverta all'uno e all'al¬
tro capo dello schermo in modo che
sia sempre rivolto nella direzione
giusta. Per condurre questa prova do¬
vrete aggiungere al driver le routine
di spostamento e scambio (listato
6). Per far ciò caricate in memoria
con BLOAD il listato BLOCK
ROUTINES, andate in Monitor con
CALL-151, e inserite in memoria i
byte del listato 6. Al termine salvate
il nuovo drive con BSAVE BLOCK
ROUTINES, A$911AJL$4E6.
Introducete quindi le linee del pro¬
gramma in Applesoft del listato
7. Dovrete anche creare davanti al¬
l'autocarro una nuova tavola delle fi¬
gure del camioncino che abbia due
colonne di byte vuoti davanti alla fi¬
gura. Il modo più facile per farlo sa¬
rebbe quello di ricaricare il listato 4
con FURGONE+1 #144, poi ag¬
giungere la linea 30 POKE
254,7:STOP. Una volta che avrete e-
seguito il programma il vostro fur¬
gone sarà sullo schermo e i due byte
vuoti gli saranno davanti. Allora fa¬
te CALL 37729 (la routine SCAN)
e infine BSAVE FURGONE+2 #
144,A$9000U120
Quando avrete fatto girare il pro¬
gramma vedrete, come nelle nostre
precedenti prove, il furgone che si
muove senza sbalzi avanti e indie¬
tro, invertendo direzione di marcia a
ogni estremità dello schermo. Tene¬
te presente che non è necessario che
la figura sia asimmetrica per usare
questo metodo di cambio di dire¬
zione.
Vediamo come funziona il pro¬
gramma. La linea 10 pulisce entram¬
bi gli schermi Hi-Res e predispone
YTABLE e il numero della figura.
La linea 20 stabilisce i valori inizia¬
li di VT, VB, HR e HL.
Linea 30: dato che l’ultimo scher¬
mo che avete pulito era quello di pa¬
gina 2, siete ancora su quella pagi¬
na, e quindi disegnate la figura inizia¬
le a 0-pagina 2 (figura 2). La linea
35 chiama CTRSET per inizializza-
re il contatore dei ioop di sposta¬
mento. La linea 40 cambia alla pagi¬
na 1 (senza cambiare la pagina che è
visualizzata), disegna la figura inizia¬
le, la muove a destra di due bit (por¬
tandola al suo giusto punto di par¬
tenza) e decrementa il contatore dei
loop di spostamento. Osservate che
siete riusciti a eseguire il doppio
spostamento a destra e a decrementa-
re il contator e in u n unico passo ac¬
cedendo a SHFTR4 a linea 1280.
Dovete sempre osservare ogni rou¬
tine alla ricerca di punti d’ingresso al¬
ternativi, che spesso possono essere
usati per risolvere problemi speciali.
Le linee 50-60 gestiscono il movi¬
mento della figura per tutto il percor¬
so attraverso lo schermo, semplice-
mente richiamando più e più volte
SHFTR4. Linea 70: quando arrivate
a questo punto la figura a pagina 1 è
spostata a destra di due bit rispetto
alla sua posizione iniziale nel byte,
e quindi la dovrete fare arretrare di
due bit prima di poterla cancellare CE¬
RASE) in preparazione dell’inversio¬
ne. Ricordate che quando state usan¬
do REVDIR con lo scambio di pagi¬
ne dovete cancellare la figura su una
pagina, fame il REVDIR sull'altra
88
Listato 11:
BLOCK ROUTINES completa
911A.95FF
911A- A9
9120- 8F
0E
60
A6
A9
FB
00
9D
8D
6F
54
CO
A9
9128-
40
85
E6
60
A9
00
8D
55
9130-
CO
A9
20
85
E6
60
20
22
9138-
91
18
90
03
20
2C
91
20
9140-
0E
92
20
0E
92
20
7A
91
9148-
20
0E
92
20
0E
92
20
7A
9150-
91
A5
E6
C9
40
F0
E5
60
9158-
20
22
91
18
90
03
20
2C
9160-
91
20
B5
91
20
B5
91
20
9168-
8A
91
20
B5
91
20
B5
91
9170-
20
8A
91
A5
E6
C9
40
F0
9178-
E5
60
A6
FB
DE
6F
8F
DO
9180-
08
20
AC
91
A9
0E
9D
6F
9188-
8F
60
A6
FB
DE
6F
8F
DO
9190-
F8
20
97
91
18
90
ED
A5
9198-
FF
C9
02
90
0E
C6
FF
C 6
91A0-
FE
A5
FF
C9
01
90
04
C6
91A8-
FF
C6
FE
60
E6
FF
E6
FE
91B0-
E6
FF
E6
FE
60
A5
FD
85
91B8-
06
20
91
93
18
A4
FE
A9
91C0-
00
85
08
85
09
85
07
90
91C8-
02
E6
08
B1
26
C9
80
90
91D0-
02
E6
09
A5
08
F0
07
B1
91D8-
26
09
80
4C
E2
91
B1
26
91E0-
29
7F
6A
91
26
90
02
E6
91E8-
07
A5
09
C9
01
90
06
B1
91F0-
26
09
80
91
26
C4
FF
F0
91F8-
08
88
A5
07
C9
01
4C
BF
9200-
91
C6
06
A5
06
C9
FF
F0
9208-
04
C5
FC
B0
AC
60
A5
FD
9210-
85
06
20
91
93
18
A4
FF
9218-
A9
00
85
08
85
09
B1
26
9220-
2A
91
26
B0
02
90
02
E6
9228-
08
C9
80
B0
02
90
02
E6
9230-
09
A5
08
DO
09
B1
26
29
9238-
7F
91
26
4C
44
92
B1
26
9240-
09
80
91
26
C4
FE
F0
09
9248-
C8
18
A5
09
C9
01
4C
18
9250-
92
C6
06
A5
06
C9
FF
F0
9258-
04
C5
FC
B0
B5
60'
• 38
A5
9260-
FC
E5
E3
85
FC
38
A5
FD
9268-
E5
E3
85
FD
60
18
A5
FC
9270-
65
E3
85
FC
18
A5
FD
65
9278-
E3
85
FD
60
A9
00
8D
54
9280-
CO
A9
40
85
E6
A5
FC
C5
9288-
E3
90
0F
20
6D
92
20
2F
9290-
93
20
5E
92
20
5E
92
20
9298-
2F
93
60
A9
00
8D
55
CO
92A0-
A9
20
85
E6
20
6D
92
20
92A8-
2F
93
20
5E
92
20
5E
92
92B0-
20
2F
93
60
A9
00
8D
54
92B8-
CO
A9
40
85
E6
20
5E
92
92C0-
20
2F
93
20
6D
92
20
6D
92C8-
92
20
2F
93
60
A9
00
8D
92D0-
55
CO
A9
20
85
E6
20
5E
92D8-
92
20
2F
93
20
6D
92
20
92E0-
6D
92
20
2F
93
60
A9
00
92E8-
85
FA
A5
FD
85
06
20
91
92F0-
93
A4
FF
A2
00
Al
FA
C9
92F8-
7F
F0
15
C9
01
90
11
86
9300-
F9
4A
26
F9 .58
E0
07
90
9308-
F8
4A
A5
F9
90
02
09
80
9310-
91
26
C8
E6
FA
DO
02
E6
9318-
FB
C4
FE
90
D6
F0
D4
C6
9320-
06
A5
06
C9
FF
F0
04
C5
9328-
FC
B0
C3
20
61
93
60
A9
9330-
00
85
FA
A5
FD
85
06
20
9338-
91
93
A4
FE
A2
00
Al
FA
9340-
51
26
91
26
88
18
E6
FA
9348-
DO
02
E6
FB
CO
FF
F0
04
9350-
C4
FF
B0
EA
C 6
06
A5
06
9358-
C9
FF
F0
04
C5
FC
B0
D7
9360-
60
A9
00
85
FA
A5
FD
85
9368-
06
20
91
93
A4
FE
A2
00
9370-
B1
26
81
FA
88
18
E6
FA
9378-
DO
02
E6
FB
CO
FF
F0
04
9380-
C4
FF
B0
EC
C6
06
A5
06
9388-
C9
FF
F0
04
C5
FC
B0
D9
9390-
60
A4
06
B1
CE
85
26
A5
9398-
E6
C9
40
DO
05
B1
DE
85
93A0-
27
60
B1
EE
85
27
60
A9
93A8-
80
85
CE
A9
94
85
CF
A9
93B0-
40
85
EE
A9
95
85
EF
A9
93B8-
CO
85
DE
A9
93
85
DF
60
93C0-
40
44
48
4C
50
54
58
5C
93C8-
40
44
48
4C
50
54
58
5C
93D0-
41
45
49
4D
51
55
59
5D
93D8-
41
45
49
4D
51
55
59
5D
93E0-
42
46
4A
4 E
52
56
5A
5E
93E8-
42
46
4A
4E
52
56
5A
5E
93F0-
43
47
4B
4F
53
57
5B
5F
93F8-
43
47
4B
4F
53
57
5B
5F
9400-
40
44
48
4C
50
54
58
5C
9408-
40
44
48
4C
50
54
58
5C
9410-
41
45
49
4D
51
55
59
5D
9418-
41
45
49
4D
51
55
59
5D
9420-
42
46
4A
4E
52
56
5A
5E
9428-
42
46
4A
4E
52
56
5A
5E
9430-
43
47
4B
4F
53
57
5B
5F
9438-
43
47
4B
4F
53
57
5B
5F
9440-
40
44
48
4C
50
54
58
5C
9448-
40
44
48
4C
50
54
58
5C
9450-
41
45
49
4D
51
55
59
5D
9458-
41
45
49
4D
51
55
59
5D
9460-
42
46
4A
4E
52
56
5A
5E
94 68-
42
46
4A
4E
52
56
5A
5E
9470-
43
47
4B
4F
53
57
5B
5F
9478-
43
47
4B
4F
53
57
5B
5F
9480-
00
00
00
00
00
00
00
00
9488-
80
80
80
80
80
80
80
80
9490-
00
00
00
00
00
00
00
00
9498-
80
80
80
80
80
80
80
80
94A0-
00
00
00
00
00
00
00
00
94A8-
80
80
80
80
80
80
80
80
94B0-
00
00
00
00
00
00
00
00
94B8-
80
80
80
80
80
80
80
80
94C0-
28
28
28
28
28
28
28
28
94C8-
A8
A8
A8
A8
A8
A8
A8
A8
94D0-
28
28
28
28
28
28
28
28
94D8-
A8
A8
A8
A8
A8
A8
A8
A8
94E0-
28
28
28
28
28
28
28
28
94E8-
A8
A8
A8
A8
A8
A8
A8
A8
94F0-
28
28
28
28
28
28
28
28
94F8-
A8
A8
A8
A8
A8
A8
A8
A8
9500-
50
50
50
50
50
50
50
50
9508-
DO
DO
DO
DO
DO
DO
DO
DO
9510-
50
50
50
50
50
50
50
50
9518-
DO
DO
DO
DO
DO
DO
DO
DO
9520-
50
50
50
50
50
50
50
50
9528-
DO
DO
DO
DO
DO
DO
DO
DO
9530-
50
50
50
50
50
50
50
50
9538-
DO
DO
DO
DO
DO
DO
DO
DO
9540-
20
24
28
2C
30
34
38
3C
9548-
20
24
28
2C
30
34
38
3C
9550-
21
25
29
2D
31
35
39
3D
9558-
21
25
29
2D
31
35
39
3D
9560-
22
26
2A
2E
32
36
3A
3E
9568-
22
26
2A
2E
32
36
3A
3E
9570-
23
27
2B
2F
33
37
3B
3F
9578-
23
27
2B
2F
33
37
3B
3F
9580-
20
24
28
2C
30
34
38
3C
9588-
20
24
28
2C
30
34
38
3C
9590-
21
25
29
2D
31
35
39
3D
9598-
21
25
29
2D
31
35
39
3D
95A0-
22
26
2A
2E
32
36
3A
3E
95A8-
22
26
2A
2E
32
36
3A
3E
95B0-
23
27
2B
2F
33
37
3B
3F
95B8-
23
27
2B
2F
33
37
3B
3F
95C0-
20
24
28
2C
30
34
38
3C
95C8-
20
24
28
2C
30
34
38
3C
95D0-
21
25
29
2D
31
35
39
3D
95D8-
21
25
29
2D
31
35
39
3D
95E0-
22
26
2A
2E
32
36
3A
3E
95E8-
22
26
2A
2E
32
36
3A
3E
95F0-
23
27
2B
2F
33
37
3B
3F
95F8-
23
27
2B
2F
33
37
3B
3F
Checksum del listato 11
NOME FILE:
BLOCK ROUTINES
TIPO: B
LUNGHEZZA:
04E6
CHECKSUM :
EE
pagina e infine ridisegnare (DRAW)
la figura invertita sulla prima pagi¬
na. Prima predisponete il disegno su
pagina 1 (anche qui senza cambiare
la pagina che è visualizzata). Poi, u-
sando il punto d'ingresso medio di
SHFTL4, arretrate la figura di due
bit, e infine cancellatela.
La linea 80 riporta a pagina 2 e in¬
verte semplicemente la figura. La li¬
nea 85 reimposta il contatore dei
loop di spostamento in preparazione
del viaggio di ritorno. La linea 90 ri¬
commuta a pagina 1, disegna la figu¬
ra invertita, e usa il punto d’ingresso
medio di SHFTL4 per muovere la fi¬
gura in avanti di due punti e decre-
mentare il contatore in preparazione
per il movimento verso sinistra.
Le linee 100-110 muovono com¬
pletamente la figura attraverso lo
schermo richiamando ripetutamente
SHFTL4. Linea 120: questa volta la
figura è nuovamente spostata di due
bit dalla posizione di partenza nel
byte a pagina 1, e perciò predispo¬
nete la pagina 1, chia mate il punto
d'ingresso medio di SHFTR4 per far
arretrare la figura di due bit e infine
cancellatela dallo schermo.
La linea 130 commuta a pagina 2
e inverte la figura. La linea 140 sal¬
ta indietro alla linea 35 che reimpo¬
sterà il contatore e ridisegnerà la fi¬
gura invertita sulla pagina 1, in mo¬
do che possiate ricominciare tutto da
capo.
Tenete presente che ci sono molti
modi per scrivere un programma del
genere, e che il nostro test è solo u-
no dei metodi possibili. Per esem¬
pio se avrete molte figure impegnate
in azioni del tipo in cui si inverte al¬
ternativamente la direzione di marcia
può darsi che sia il caso di combina¬
re le linee da 70 a 90, o altre simili
sequenze, in un’unica breve aggiunta
al driver in linguaggio macchina,
che svolgerà tutti quei compiti in
un' unica semplice CALL. Come si
presenterebbe questo programma di
prova in una versione interamente in
linguaggio macchina? Per usarlo do¬
vrete avere in memoria il driver,
FURGONE+2 #144 e il dump esade-
cimale del listato 8. Per farlo gira¬
re è sufficiente introdurre HGR:
HGR2 e poi fare CALL 2048.
- \
Questo programma è disponibile
su dischetto. L’elenco, i prezzi
e le modalità d’ordine di questo
e degii altri dischetti disponibili
sono riportati nella rubrica
Disk Service.
s J
® By Nibble e Applicando
89
q^lettere
L'MS Basic
è andato in tilt
Mentre stavo correg¬
gendo gli errori di copia¬
tura sul programma Mac
graph, apparso sul nume¬
ro di marzo, l'MS Basic
è andato in tilt: il movi¬
mento del mouse non a-
veva alcun effetto sullo
schermo e così anche le i-
struzioni mandate trami¬
te la tastiera. Di solito in
questi casi appare la fine¬
stra che segnala l'errore
di sistema, ma inspiega¬
bilmente nel mio ciò
non è avvenuto e dal dri¬
ve esterno è stato espul¬
so il disco con la registra¬
zione di Mac graph; non
potendo fare altro, ho
schiacciato il tasto di re¬
set. Riprovando a carica¬
re il disco dell'MS Basic,
sullo schermo è apparsa
l'icona del Mac infelice a
segnalarmi che il conte¬
nuto era stato cancellato
o reso illegibile (cosa
che ho poi verificato inse¬
rendo prima il disco di si¬
stema e poi quello del-
l'MS Basic, ottenendo co¬
me risultato la richiesta
di inizializzare il disco
cancellato). Vorrei sapere
quali possono essere sta¬
te le cause di tale fenome¬
no (se sono dovute al-
l'hardware come posso
porvi rimedio?) e a cosa
è dovuto l'errore di si¬
stema.
Daniele Mirolo
Ponzano Veneto (TV)
E' molto probabile che
l'inconveniente in cui è
incorso mentre corregge¬
va il suo programma in
Basic risieda nel fatto di
aver scritto un program¬
ma con delle routine di
chiamata al toolbox Ma¬
cintosh (menù, finestre e
box) con una versione di
Basic in cui queste routi¬
ne non sono previste; si
accerti di avere a disposi¬
zione la versione MS-Ba¬
sic 2.0 o 2.1 per scrivere
il programma MacGraph.
Spreadsheet
Appleworks
Possiedo il programma
Apple Works da circa un
anno, ma finora non mi
era capitato mai di creare
un rapporto con il Word
processor e il foglio elet¬
tronico. Così mi sono ac¬
corto che quando si copia
un foglio elettronico sul
word processor di Apple
Works, i numeri nel vi¬
deo si dispongono in ma¬
niera del tutto disordina¬
ta. Inizialmente ho pensa¬
to che la colpa fosse dei
parametri di stampa (giu¬
stificato e proporzionale-
1), che ho inserito per
meglio presentare il testo
di accompagnamento al
foglio; eliminandoli però
non sono riuscito a mi¬
gliorare la situazione. Ho
guardato il manuale ma
al riguardo non dice nien¬
te. Allora ho immesso
dei trattini per riempire
gli spazi vuoti fra le voci
del foglio e i numeri, ma
non c'è stato verso di
mettere in colonna tali
numeri. Un programma
certamente molto poten¬
te, come Apple Works,
che non permette di rea¬
lizzare un bel rapporto
non vale poi molto.
Maria Grillo
Sciacca (AG)
Il problema del cattivo
allineamento di tabelle
contenenti numeri e crea¬
te con lo spreadsheet e
poi riportate nel word
processor dipende dal fat¬
to che lo spreadsheet usa
come separatore di campi
un tabulato, per cui sarà
sufficiente all'interno del
wordprocessor giustifica¬
re a sinistra la parte ine¬
rente alla tabella con 10
caratteri per pollice.
Non stampa
i grafici
Sono un vostro letto¬
re da sempre. Il mio pro¬
blema è il seguente:
Ho un Apple Ile con
un solo drive che recente¬
mente ho dotato di una
stampante Apple Dot Ma¬
trix al posto della Silen-
type. Senonché il pro¬
gramma Visiplot che pos¬
seggo e che funzionava
bene con la Silentype,
con la Dot Matrix non
stampa più i grafici. Il
L'angolo
del reclamo
Da un lettore di Cuneo giunge questa lettera,
alla quale risponde la Apple Computer:
Sono uno studente universitario possessore di
un favoloso Mac 512/c (N° di serie F50739
FM0001WP) dal luglio 1985. Purtroppo però sulla
mia scrivania l'ho visto ben poco! Per ben tre vol¬
te infatti (al momento ne sono sprovvisto) è stato
rispedito alla Apple SpA di Reggio Emilia e tutte e
tre le volte per lo stesso inconveniente: la stam¬
pante (Imagewriter) non riceveva alcun impulso e
di conseguenza non stampava un bel niente! Cer¬
to che la mia non è una diagnosi come si deve,
però altro non ho potuto sapere dai signori della
Apple SpA. Ora mi chiedo e chiedo a voi:
• perche si continua con queste riparazioni certa¬
mente provvisorie?
• forse non si è capito che il guasto è sicuramen¬
te più serio, vista la sua quasi periodicità?
• aspetteranno mica lo scadere della garanzia
per spillarmi dei quattrini?
Certo sono deluso e credo di aver già speso ab¬
bastanza per questo sfortunato Mac; tanto più
che pensavo che la stessa cifra di acquisto po¬
tesse in un certo senso rappresentare una "ga¬
ranzia" di affidabilità. Credendo fermamente nella
serietà della vostra rivista, gradirei pubblicaste
questa lettera di reclamo.
Fabio Turchi
La vicenda del signor Fabio Turchi fu trattata
dalla ditta Rossi Computer di Cuneo, rivenditore
disdettato da Apple il 18/10/85. Al servizio di as¬
sistenza di Apple Computer risulta che il Mac¬
intosh sia stato inviato a Reagio Emilia solo due
volte e oltre a tutto che, dopo la prima ripara¬
zione effettuata in data 25.9.85, al secondo invio
delTI/4/86 sia la macchina che la stampante ri¬
sultassero perfettamente funzionanti. Non aven¬
do riscontrato alcun difetto, i tecnici Apple resti¬
tuirono la macchina al rivenditore, avvertendo di
controllare meglio il software e i cavi di collega¬
mento del cliente. E' quindi importante sotto-
lineare che la maggior parte delle disfunzioni giu¬
stamente lamentate dal signor Turchi va ricon¬
dotta al fatto che il rivenditore non era in pos¬
sesso del materiale di assistenza necessario e
che non effettuò nessun controllo qualificato sul
sistema dell'utente verificandone l'installazione.
E' proprio per evitare disguidi di questo genere
che Apple Computer invita gli utenti a verificare
che i rivenditori ai quali si rivolgono siano stati i-
dentificati quali Apple Center e cioè qualificati
per assistenza, training, consulenza e software.
90
programma è il Yisplot
C1981 1.00 Micro Finan-
ce Systems. Mi potreste
suggerire quali modifiche
posso apportarvi, e in
quali righe, affinché pos¬
sa stampare i grafici con
la Dot Matrix?
Lidio Faccioni
Rovigo
Per risolvere il suo pro¬
blema e stampare i grafi¬
ci di Visiplot sulla Dot
Matrix bisogna che lei
aggiorni la versione LO
del Visiplot in suo pos¬
sesso con la relativa ver¬
sione 1.1; per maggiori
informazioni le consiglia¬
mo di rivolgersi al suo ri¬
venditore di fiducia.
Apple, Duodisk
e ImageWriter
Uso da qualche tempo,
senza problemi, Apple-
Works sul mio sistema
costituito da Apple Ile +
Duodisk + Imagewriter.
Qualche volta però a-
vrei bisogno di usare lo
stesso programma su un
sistema analogo con una
stampante Epson RX-80.
Non sono finora riuscito
a ottenere nessuna stam¬
pa malgrado ogni mio
tentativo (sostituzione
del file SEG.PR, invio
di codici speciali) e mal¬
grado nel manuale si af¬
fermi che tale stampante
è supportata dal program¬
ma. Mi è stato detto che
la colpa di questa situa¬
zione è dell'interfaccia u-
sata (Epson). Gradirei un
vostro parere in merito.
Dott. Giampaolo
Piaserico
Montebelluna (TV)
Purtroppo quanto le
hanno detto corrisponde a
verità: non può stampare
con Apple Work su una
Epson RX-80 a causa del¬
l’interfaccia della Epson;
le consigliamo di rivol¬
gersi agli uffici tecnici
Apple o Epson-Segi.
Compilatore
per il Pro-DOS?
Desidero sapere se esi¬
ste un compilatore per il
ProDos e routine di NO-
COPY per tale sistema o-
perativo.
In caso affermativo vi
prego di comunicarmi
prezzi e punti vendita.
A. Tommasini
Itri (LT)
Al momento non risul¬
ta disponibile sul merca¬
to un compilatore in Pro¬
Dos, né tanto meno una
routine NO-Copy.
Oroscopo
e Golf
Ho acquistato presso di
voi due dischetti che mi
danno dei problemi:
1) Programma Orosco¬
po: dopo l’esecuzione del
calcolo delle case, i suc¬
cessivi si bloccano, dan¬
do indicazione di errore
(division by zero, illegal
quantity error ecc.).
2) Programma Golf: u-
tilizzando il percorso in¬
serito nel programma, il
gioco si blocca al mo¬
mento del lancio della
pallina. Il problema peg¬
giora digitando personal¬
mente il listato da voi
pubblicato: in questo ca¬
so le buche da me dise¬
gnate non vengono addi¬
rittura visualizzate. Vor¬
rei spiegazioni e con¬
sigli.
Gianfranco Rizzi
Milano
/ due programmi fun¬
zionano in tutte le loro
opzioni e il listato del
programma Golf pubbli¬
cato sulla rivista è giu¬
sto. Tuttavia nella dupli¬
cazione dei dischetti in
suo possesso potrebbe es¬
sere avvenuto qualche in¬
conveniente. Ce li rispe¬
disca e le verranno sosti¬
tuiti con copie perfetta¬
mente funzionanti.
** Mercatino delle Mele «*
• VENDO stampante Scribe come nuova correda¬
ta di 3 nastri e manuale originale per passaggio
a Image Writer II. L. 300.000 Trattabili. Spedi¬
zione in contrassegno. Giuseppe Carollo - C.P.
2017 c/o Succursale 10, 74100 Siracusa. Tel.
099/333438 ore pasti.
• VENDO Apple He + monitor + supporto moni¬
tor + drive aggiuntivo + mouse + stampante Ima¬
ge Writer in blocco a L. 4.500.000 trattabili. Re¬
galo molti programmi (tra cui Tre x Te, Pinpoin-
t, Apple Writer, Dossier). Vendo separatamente
drive aggiuntivo da 140K a L. 450.000. Giovan¬
ni Zanuso (Calzature), Via A. Diaz 8r - 17048
Valleggia (SV). Tel.019/882508 ore pasti.
• CERCÒ possessori di Apple He e He per
scambiare programmi di ogni tipo (grafici, utili¬
tà, giochi ecc.) preferibilmente zona Vicenza.
Massimo Garzotto, Via False 4, - 36050 Monte-
viale (VI). Tel.0444/552201.
• VENDO o scambio manuali in italiano per I-
BM - PC e compatibili. Annuncio sempre valido
vendo monitor Philips F.V. con AV010, perfet¬
to, L. 150.000. Roberto Gazzaniga, Via Cavour
13 - 27055 Rivanazzano (PV). Tel.0383/92354.
• VENDO Apple De 128K, 2 drive, stampante
grafica, monitor, magnifico software (Apple Wor¬
ks, Apple Writer, Prodos, Pascal, Graphworks,
Compilatore, Tasc, giochi, Utilities, copiatori,
Las One, Jane Guttemberg, S argon, Pilot, ecc.) a
L.3.200.000. Fabio Mora, Via Cantore 14/11 -
16149 Genova. Tel.010/468515.
• COMPRO programmi per Macintosh e Apple
II. Per Mac acquisto qualsiasi accessorio, 2° dri¬
ve, Image Writer E, trasformazione da 512 a
Plus. Acquisto Apple II e Apple Ile + qualsiasi
accessorio. Italico Pitassi, Via Borromeo 4,
35100 Padova. Tel.049/26974.
• VENDO Apple He con tastiera, monitor con
supporto, stampante Image Writer, mouse, Hand
Controller, Joystick, visore a cristalli liquidi,
borsa e numerosi dischetti: Appleworks, Logo...
ecc. -I- serie completa di Applicando e numerosis¬
simi dischetti vergini, causa passaggio a sistema
superiore. Maurizio Barberis, Via Villadeati 6,
10135 Torino. Tel.011/6199287 ore pasti.
• SVENDO causa passaggio sistema superiore
Apple Uè + video professionale Philips 12" fo¬
sfori gialli + floppy-disk originale con control¬
ler (anch esso originale), il tutto perfettamente
funzionante e in ottime condizioni. Accertata se¬
rietà, prezzo di vero realizzo, regalo scheda inter¬
faccia stampante e moltissimi volumi per solo
Apple Ile, solo se interessati telefonare. Ignazio
De Gregorio, Via Cofano 63 - 91100 Trapani.
Tel.0963/20650 ore pranzo.
OCCASIONE vendiamo Apple Ile,
completo di borsa e mouse, a lire
1.450.000, Macintosh 512K, com¬
pleto di software, a lire 3.500.000,
più svariati accessori Apple e Apple
compatibili a prezzi interessanti.
Contattare SYMIC, Via delle Regio¬
ni 34, Segrate (Milano). Telefono
02 2130450.
91
ìhelp
ImageWriter e caratteri alternativi
Con un semplice programma è possibile creare un
set di caratteri personali utilizzabili in alternativa ai
caratteri standard, che rimangono sempre a disposizio¬
ne). Per costruire i caratteri alternativi occorre seguire
la seguente procedura:
1. Definire il carattere alternativo e il carattere
standard che lo rappresenta; il carattere alternativo de¬
ve essere inserito in una matrice a 8 righe e 8 colon¬
ne al massimo con una procedura, oppure 16 colonne
al massimo utilizzando una seconda procedura.
I caratteri standard rappresentativi di quelli nuovi
possono essere anche tutti quelli compresi tra i valori
32 e 127 della tabella ASCII nel caso della procedura
a 16 colonne (tutti i caratteri stampabili), oppure tra
i valori 32 e 111 della tabella ASCII nel caso della
procedura a 8 colonne (simboli, numeri, lettere maiu¬
scole e lettere minuscole fino alla -o-).
2. Ricavare i caratteri decimali ai quali corrispon¬
de ogni colonna; a ogni punto vuoto (bianco) corri¬
sponde uno zero (0) e a ogni punto pieno (nero) cor¬
risponde un uno (1); si ricava così un valore binario,
e da questo il relativo valore decimale corrispondente
(figura a fondo pagina).
3. Scrivere una routine che esegua le seguenti o-
perazioni:
Abilitare la stampante allHitilizzo degli 8 BIT (solo
nel caso di matrici a 16 colonne).
• Inviare alla stampante il carattere di controllo "ESC -
" (escape meno) per la procedura con i caratteri fino
a 8 colonne, o "ESC +" (escape più) per la procedura
fino a 16 colonne.
• Inserire i caratteri in forma DECIMALE nella for¬
ma ESC I (escape I) <lista>. Nella <lista> per ogni
carattere inserito occorre mettere:
- carattere standard rappresentativo del nuovo;
- numero di colonne per quel carattere, rappresenta¬
to da una lettera maiuscola dell'alfabeto, dalla "A" al¬
la "P" (K e J comprese) corrispondenti ai numeri di
colonne 1-16;
- codice decimale di ogni colonna grafica.
• Inviare il carattere "CTRL-D" alla stampante, come
fine lista (EOT).
Nelfinserire i caratteri di controllo e di definizione
dei caratteri alternativi, occorre inviare i dati diretta-
mente nella locazione di output dell’interfaccia seriale
collegata alla stampante, tramite l'istruzione:
POKE loc.output,val.numerico.
Questo metodo si rende necessario in quanto i dati
inviati con l’istruzione PRINT vengono considerati
sempre con Tottavo bit a uno e quindi si perde¬
rebbe il valore dell'ottava riga.
Eseguita la routine, il set di caratteri alternativo vie¬
ne attivato con il comando " ESC ' ", mentre con "E-
SC $" si abilita la stampante per utilizzare il set dei
caratteri standard.il procedimento è valido sia in am¬
biente DOS che ProDos.
Questo breve listato dimostrativo è relativo al carat¬
tere della figura 1:
10
ESC$=CHR$(27): PRINT CHR$(4) "PR#!"
15
PRINT ESC$;"Z";CHR$(0);CHR$(32); : REM Abilita
la stampante all'utilizzo di 8 BIT
20
FOR I = 1 TO 21
30
READ X
40
POKE49304,X: REM Locazione di OUTPUT per la
SU
PER SERIAL CARD nello SLOT 1
50
NEXT I S ' ' ' " '
60
PRINT ESC$;" ' ": REM Selezione caratteri
AL-
TER
NATIVI -
65
PRINT "W": REM Stampa CARATTERE ALTERNATIVO
70
PRINT ESC$; REM Selezione dei caratteri
STANDARD
75
PRINT "W": REM Stampa CARATTERE STANDARD
80
REM Lista valori inviati alla stampante
(ca-
rat
teri di controllo e dati sul font)
90
DATA 27, 43, 21, 73
100
DATA 87, 74, 0, 126, 36, 24, 36, 66, 66,
36,
24, 0
110
DATA 4, 27, 68, 0, 32
120
PRINT CHR$(4) "PR#0"
Tutti i valori inviati alla stampante dopo l'abilita¬
zione all'utilizzo dell’ottavo BIT vengono mandati di¬
rettamente all'interfaccia tramite l’istruzione POKE
49304,X perché tutti i dati devono essere di otto bit.
I valori alla linea 90 sono "ESC + " ed "ESC I", ri¬
spettivamente "DEFINIZIONE CARATTERI AL¬
TERNATIVI 16 col." e " INIZIO LISTA".
I valori alla linea 100 sono il carattere da sostituire
(CHR$(87)=W), il numero di colonne da cui è compo¬
sto (CHR$(74)=J), e i valori decimali delle colonne.
I valori alla linea 110, sono il carattere di "FINE
LISTA", e i valori per abilitare la stampante a 7 bit.
Colonna
Val.Binario
Val.Esadecimale
Val. Dee.
1
00000000
$00
0
2
01111110
$7E
126
3
00100100
$24
36
4
00011000
$18
24
5
00100100
$24
36
6
01000010
$42
66
7
01000010
$42
66
8
00100100
$24
36
9
00011000
$18
24
10
00000000
$00
0
92
(30§Csservice
Listati senza fatica
Tutti i programmi di Applicando possono essere trascritti e quindi salvati su
dischetto. Ma la trascrizione è lenta e noiosa, e sbagliare fin troppo facile. Ecco
perché Applicando offre, già pronti, i dischetti con i programmi autoguidati
(cioè con le istruzioni), sia per Apple II, sia per Macintosh: per ottenerli, è
sufficiente inviarci il tagliando (pubblicato nell'ultima pagina) debitamente
compilato. Chi vuole risparmiare non perda la favolosa offerta dell'
abbonamento al Disk Service e invii subito il tagliando di pagina 129.
APPLICANDO 1
AP1/I02 Profitti. In tempo reale l'anali¬
si del break-even point, punto di pareg¬
gio di un’azienda. Calendario perpe¬
tuo. Dal 1582 in poi tutto quello che si
può sapere sui giorni passati e futuri. I
tronchi del tesoro. Una spericolata
caccia al tesoro a nuoto, tra le insidie
di tronchi galleggianti. Lire 30.000.
AP1/N03 Eliminatore di Dos. Uno
strumento per aumentare del 10% la ca¬
pacità di un normale floppy disk. Orolo¬
gio. Per trasformare l'Apple II in un oro¬
logio con rintocchi, allarme e lancetta
dei secondi. Pronti puntare fuoco!
Guardiano di un castello abbandonato,
hai 25 colpi da sparare contro gli intru¬
si. Lire 30.000.
APPLICANDO 2
AP2/IN04 Costi chilometrici auto.
Un programma per calcolare e confron¬
tare i costi di qualunque auto. Richia-
mafigure. Posizionare, ingrandire,
ruotare, cambiare colore, aggiungere fi¬
gure a quelle di una tavola. Laser nel¬
lo spazio. Battaglia a colpi di laser
contro asteroidi e alieni per difendere la
torretta spaziale. Lire 30.000.
APPLICANDO 3
AP3/IN05 Sistema base. Un data ba¬
se modulare con tutte le caratteristiche
essenziali per mettere ordine nei propri
archivi. Etichette. Etichette spirito¬
se e bizzarre, di lavoro o di ogni gene¬
re, stampate facilmente e nel numero
desiderato. Contratti. Con il WPL, il
linguaggio di programmazione dell’Ap¬
ple Writer, bastano cinque minuti per
un documento di più pagine personaliz¬
zato. Gran catalogo. Una routine
per avere il catalogo del dischetto su
due colonne, 42 file per volta, e ri¬
chiamarli con un solo tasto. Lire
30.000.
AP3/A06 Equo canone (occorre Visi-
cale). In Visicalc un modello che per¬
mette, a inquilini e proprietari, l'esatto
calcolo dell'equo canone. Lire 25.000.
APPLICANDO 4
AP4/N07 Lettura sprint (versione ita¬
liana e versione con frasi in inglese).
Un reading improver per leggere di più a
parità di tempo. Rompiquindici. Il pic¬
colo rompicapo delle quindici pedine da
ordinare nei sedici spazi a disposizio¬
ne. Tastierino fantasma. Una routi¬
ne per avere a disposizione un tastieri¬
no numerico anche sull'Apple II. Routi¬
ne di input. Due subroutine, una per
i dati numerici, l’altra per gli alfanumeri¬
ci, per il controllo dell'input. Lire
30.000.
AP4/A09 Organo, violino, piano¬
forte (dischetto Pascal, occorre lan-
guage card o Apple Ile o Ile). Ecco co¬
me, col Pascal, si riesce a simulare i
tre strumenti attivando l'altoparlante
dell'Apple da programma. Lire 30.000
APPLICANDO 5
AP5/N08 Investor. In tempo reale il
quadro esatto di come vanno i propri in¬
vestimenti finanziari. Con cinque pro¬
spetti riepilogativi e 52 periodi di quota¬
zione, Investor è uno dei programmi più
completi in questo settore e in assoluto
il più economico. Lire 70.000.
AP5/N09 Agenda personale. Per ri¬
cordare ora per ora gli appuntamenti di
un anno intero memorizzando fino a 15
appunti ogni giorno. Duello d'arti¬
glieria. Vince chi sa calcolare meglio
la velocità del vento, la gittate e l'eleva¬
zione della canna. Mele e freccet¬
te. Versione computerizzata del popo¬
lare gioco delle freccette che nulla to¬
glie al gusto del far centro. Lire 30.000.
APPLICANDO 6
AP6/N10 Obbligazioni/Bond Ma¬
nager. Per avere un quadro completo
e concreto dei rendimenti dei titoli a red¬
dito fisso. PucMan/Nibbler. Versio¬
ne in alta risoluzione per Apple del fa¬
moso videogame a gettone. Line fin-
der. Letteralmente trova righe; questa
utility permette di localizzare facilmen¬
te i segmenti di un programma. Lire
30.000.
AP6/N11 Stress. In Pascal (occorre
language card o Apple Ile o Ile). Per
giocare, ma soprattutto per inventare
giochi, il programmasi pone in alternati¬
va agli usuali videogame. Lire 55.000.
APPLICANDO 7
AP7/N12 Apple pittore. Si possono
realizzare sullo schermo capolavori di
pittura, ottenendo effetti speciali di
grande efficacia. Ottovolante. Un tu-
torial per insegnare ai bambini a ricono¬
scere i numeri che rimbalzano sullo
schermo. Diskblock. Una routine che
permette di evitare che qualche curio¬
so possa avere libero accesso in pro¬
grammi riservati. Archivio per Ap¬
ple. Per avere un back-up dei program¬
mi più importanti da dischetto a casset¬
ta o viceversa. Discoteca. Una ban¬
ca dati che tiene sotto controllo la colle¬
zione di LPe cassette. Aiuto. Alla fine
della battitura di un programma, Aiuto
vi dirà quanti errori ci sono e a quali li¬
nee. Lire 30.000.
APPLICANDO 8
AP8/N13 Cambiacomandi/Messag-
gi. Un programma che insegna come
personalizzare i messaggi propri del
Dos dell'Apple. Le Mans. Un gran pre¬
mio di formula uno da giocare in due o
da soli contro il computer. Appleorga-
no. Ecco come trasformare Apple// in
un melodioso organo. Lire 30.000.
AP8/T14 Momento di una for-
za/Colpo all'asta. La dimostrazio¬
ne didattica del ribaltamento di un cor¬
po solido appoggiato a un piano quan¬
do viene applicatala forza orizzonta¬
le che supera il momento in senso oppo¬
sto dovuto al peso. Hard copy pagi¬
ne in alta risoluzione. Se la stam-
93
éMsservice
pante è compatibile con questo pro¬
gramma si possono far miracoli. Lire
30.000.
APPLICANDO 9
AP9/N15 Fuoco fatuo. Un appassio¬
nante adventure game con un percorso
intricatissimo, mille trabocchetti, un
troll e una principessa. Apple arti¬
sta. Per destreggiarsi nella grafica ad
alta risoluzione usando lo schermo co¬
me tavolozza e la tastiera come pennel¬
lo. Data hello. Una semplice routine
che permette di disporre di una clock
card inizializzando i dischetti con gior¬
no, mese e anno. Lire 25.000.
AP9/T16 Sistema di forze paralle¬
le. Fissandone l'intensità e la posizio¬
ne, questo programma permette di vi¬
sualizzare il centro di un sistema di for¬
ze sotto forma numerica e grafica. Tra¬
slazione e rotazione di una figu¬
ra piana. Come far ruotare, traslare,
rimpicciolire, ingrandire sul video una fi¬
gura piana. Lire 30.000.
applicando io
AP10/N14 Ripristino. Come ripristi¬
nare programmi persi per un'accidenta¬
le istruzione di New o di Fp. Disk
Map. Un detective del Dos per scopri¬
re dove e come vengono immagazzina¬
ti i dati analizzando la mappa dei bit oc¬
cupati. Autonumber. Una routine per
autonumerare automaticamente i pro¬
grammi. Lire 30.000.
AP10/T17 Rette nel piano carte¬
siano. Come individuare in cinque mo¬
di diversi una coppia di rette in un piano
cartesiano e avere visualizzate le e-
quazioni relative ai piani assegnati.
Statistica. Come analizzare la corre¬
lazione tra due fenomeni mediante
l'indice di Bravais. Lire 30.000.
APPLICANDO 11
AP11/N18 Apple edicola. Una ban¬
ca dati per avere sotto controllo un arti¬
colo, il suo numero di pagina, la rivista
su cui è stato pubblicato. Disk Zap. Il
programma indispensabile per il debug¬
ging. Messaggi personali. Quando
la persona non c'è basta lasciarle un
messaggio in Apple//. Comparatore
di programmi. Per risolvere dubbi sul¬
le diverse versioni dello stesso pro¬
gramma in basic. Trappola per po¬
chi. Un cacciatore contro tre animali fe¬
roci. Vince chi riesce a intrappolare
senza essere intrappolato. Lire
30.000.
AP11/T19 Espressioni. Come risol¬
vere un piccolo dramma familiare con
l'aiuto di un elaboratore personale. Lire
25.000.
APPLICANDO 12-13
API 2/N20 Bridge. Un programma in
altissima risoluzione grafica che per¬
mette di imparare il bridge o di giocarlo
contro il computer. Microcalc. Un fo¬
glio elettronico di calcolo che mette a di¬
sposizione 20 righe per 20 colonne, per
un totale di 400 caselle da riempire co¬
me si vuole. Applesoft Line Edi¬
tor. Una potente utility che permette
l'editing dei programmi in Applesoft e
aggiunge all’Apple un più ampio control¬
lo oel cursore. Lire 30.000.
Bridge AP12/N20
Per imparare a giocare
a bridge o per esercitarsi
giocando contro il computer
AP12/A21 Budget (occorre Applewor-
ks). Un prospetto che con l'inserimento
di dati mensili e di medie preventive cal¬
cola automaticamente le medie consul¬
tive e i relativi saldi mensili e annui. Lire
20 . 000 .
AP12/A22 Budget (occorre Visicalc).
Un prospetto che con l'inserimento di
dati mensili e di medie preventive calco¬
la automaticamente le medie consunti¬
ve e i relativi saldi mensili e annui. Lire
20 . 000 .
AP12/T25 Animazione di una rota¬
zione tridimensionale. Un esem¬
pio di come una rotazione tridimensio¬
nale permette di rappresentare gli og¬
getti proprio come li vediamo. Trasfor¬
mazione da File a Data. Una utility
per risolvere il problema di aggiungere
a un programma preesistente delle i-
struzioni DATA ricavate da un altro file.
Lire 25.000.
APPLICANDO 14
AP14/N26 Golf. Un programma in altis¬
sima risoluzione grafica che permette
di disegnare il proprio percorso di golf
per poi giocarci a piacimento. Auto¬
più. Per non dimenticare più gli appun¬
tamenti fissi dedicati alla manutenzio¬
ne della vostra automobile. Lire
20 . 000 .
AP14/N27 Applebaby. Tre giochi di¬
dattici: imparare a contare in età pre¬
scolastica, ripassare le tabelline, eser¬
citarsi nell'ortografia. Lire 25.000.
AP14/A28 Rimborso spese (occorre
Appleworks). Un prospetto che permet¬
te di preparare le vostre note spese au¬
tomaticamente. Lire 20.000.
AP14/A29 Rimborso spese (occorre
Visicalc). Un prospetto che permette di
preparare le vostre note spese automa¬
ticamente. Lire 20.000.
AP14/T30 Frutteti. Un aiuto a risolve¬
re uno dei più classici problemi di esti¬
mo. Instant Poster. Scrivete la fra¬
se che volete, e subito dalla stampante
esce un poster gigante. Lire 20.000.
APPLICANDO 15
AP15/N31 Sintetizzatore di suo¬
ni. Dotate i vostri lavori di una colonna
sonora eccezionale: dal canto dell'uc¬
cellino alla mitragliatrice, dal treno in
corsa all'aereo. Volano. Un gioco in al¬
ta risoluzione per due sfidanti. Illu¬
stratore. Un programma di grafica
che offre la possibilità di realizzare otti¬
mi disegni anche a chi non è molto
dotato. Autoschermo. Crea in auto¬
matico menù altamente professionali
(come quelli di Appleworks) da inserire
nei vostri programmi. Lire 30.000.
AP15/A32 Computer cuisine. Un ri¬
cettario computerizzato sul quale me¬
morizzare ingredienti e ricette a centi¬
naia. Con possibilità di stampa delle sin¬
gole ricette e con un menù completo
dei migliori piatti creati da Gualtiero Mar¬
chesi, il più famoso cuoco d'Italia. Oc¬
corre scheda 80 colonne. Lire 20.000.
AP15/T33 Euclide. Il massimo comu¬
ne divisore e il minimo comune multiplo
in un programma che ne permette l'im¬
mediata comprensione. Isomeri. Fa
parte del più ampio progetto americano
Seraphim, per lo studio della chimica.
Lire 20.000.
APPLICANDO 16
AP16/N34 Dieta personalizzata.
Un pratico sistema di data base nutri¬
zionale, con il quale è possibile perso¬
nalizzare, a seconda della propria costi¬
tuzione fisica e delle abitudini alimenta¬
ri, una dieta bilanciata, a lungo o a bre¬
ve termine. Il dischetto contiene un file
dati di 400 cibi, la cui composizione è a-
nalizzata in calorie, proteine, grassi, vi¬
tamine e colesterolo. Lire 30.000.
AP16/N35 Designer. Il concetto dei
potenti e costosi programmi di
CAD/CAM alla portata dell'Apple//, per
fare del computer uno strumento semi¬
professionale per disegnare. Il gioco
dei pompieri. E' scoppiato un incen¬
dio, e voi siete un pompiere che deve
salvare il maggior numero di persone
prima che muoiano soffocate tra le fiam¬
me. Per listare bene in vista. Se
nel programmare avete preferito la com¬
pattezza alla chiarezza, avete bisogno
di questo programma. Timer. Un fede¬
le e preciso contasecondi che avverte
del passare del tempo, e al momento
giusto... Lire 30.000.
AP16/N36 Cento One-liner. Utili¬
ties, routines, dimostrativi di grafica e
di suoni, e perfino giochi. Cento pro¬
grammi su un solo dischetto, tutti rigo¬
rosamente scritti in una sola linea di Ba¬
sic. Da usare cosi come sono, da stu¬
diare come esempi di sintesi, o da tra¬
sferire nei vostri programmi. Lire
30.000.
AP16/N37 Rubrica telefonica (oc¬
corre Appleworks). Un’agenda telefoni¬
ca che individua in tempo reale qualun¬
que numero memorizzato, che stampa
le etichette per spedire gli auguri, e
stampa elenchi su carta da distribuire
aggiornati ogni mese ai collaboratori. Li¬
re 15.000.
94
APPLICANDO 17
AP17/N38 Strade d'America. Pianifi¬
ca un qualunque itinerario stradale ame¬
ricano tra ben 171 città diverse, fornen¬
do le sigle delle strade da percorrere,
l'elenco delle città intermedie e i calcoli
della distanza in miglia dei tratti interme¬
di e totali. Uragano. Su una piccola cit¬
tà indifesa una tempesta si abbatte im¬
placabile: distruggerà tutto. A meno
che... Gioco ad altissima risoluzione
grafica. Lire 30.000.
Dieta AP16/N34
Un pratico sistema di
data base nutrizionale
con il quale avrete la
possibilità di personalizzare
una dieta bilanciata
AP17/N39 Regress. Ideale per mani¬
polare dati con funzioni statistiche,
con la possibilità di chiedere previsioni
in base all'andamento della regressio¬
ne sui dati inseriti. Calcolatrice
RPN. Con questo programma l'Apple
diventa una sofisticata calcolatrice
che impiega per l'input la notazione po¬
lacca inversa, con una catasta operati¬
va di quattro registri. Sparate a vi¬
sta. Siete appostati contro un muro e
comandate un potente cannone. Dal
cielo fluttuano oggetti che dovete
colpire. Ma un avversario con un altro
cannone... Lire 30.000.
AP17/A40 I conti del negozio (oc¬
corre Appleworks). Questo modello di
spreadsheet è utilissimo per seguire
l'andamento giornaliero e mensile di un
negozio. Per ogni movimento di cassa
è possibile memorizzare causale e tipo
di pagamento. Il computer calcola i tota¬
li per ogni voce e indica qual è stato il
movimento di cassa della giornata, te¬
nendo conto degli ordini e dei saldi per
impegni precedenti, elabora i dati suddi¬
visi per categoria merceologiche e cal¬
cola le percentuali di ripartizione degli u-
tili su ogni articolo. Lire 50.000.
AP17/A41 I conti del negozio (oc¬
corre Visicalc). Come AP17/A40, ma
con Visicalc. Lire 50.000.
APPLICANDO 18
AP18/N41 Trivia. Una versione per Ap¬
ple II, del gioco Trivial Pursuit, però per¬
sonalizzabile e quindi utile anche per
studiare o ripassare. Bioritmi. Con
questo programma si può seguire l'an¬
damento dei propri bioritmi: tutti e tre i
cicli, mese per mese. Occhio ai con¬
sumi. Invece di annotare diligentemen¬
te la percorrenza in chilometri e i litri di
carburante consumato e poi fare i relati¬
vi calcoli... Lire 30.000.
AP18/N42 Regolatore del bip. Un
programma per regolare a piacimento il
volume del beep dell'Apple Ile. Compa¬
ratore di grafici. Ecco come
comparare le curve disegnate da
funzioni diverse. Impaginatore di
messaggi. Scritte perfettamente cen¬
trate sia sul video che sulla stampante,
senza fatica. Utility per Pro DOS.
Prefix, Subdirectory, Pathname? Sono
termini che bisogna conoscere per pro¬
grammare in ProDOS. Questa utility aiu¬
terà a capire e imparare con facilità. Li¬
re 30.000.
APPLICANDO 19
AP19/N43 Oracolo. Comperare una
casa? Cambiare lavoro? Concludere o
no quell'affare? Il primo programma di ti¬
po decision maker disponibile in Italia.
Digger. A differenza dei giochi di labi¬
rinto di tipo tradizionale, Digger chiede
di risolvere dei rompicapo spaziali, e la
prontezza di riflessi non è tra i fattori
del gioco... Claustrofobia. Questo
gioco in alta risoluzione, pacifista nei ri¬
sultati, ma non nei metodi, mette alla
prova l'abilità del giocatore. Ma atten¬
zione che non vi incastrino, perché sof¬
frite di claustrofobia... Gestione
puntatori. Volete caricare in memoria
un programma in Applesoft al di sopra
di questo o quel codice in linguaggio
macchina? Magari aggirando la memo¬
ria di schermo in alta risoluzione? O ad¬
dirittura in cima a un codice ormai servi¬
to al suo scopo in un programma che
sta girando? Ò annullare un FP battuto
pererrore? Con questo programma, tut¬
to è possibile. Grafica in doppia ri¬
soluzione. Tre routine in Basic e una
in Assembler che vi permetteranno di
creare prorammi in doppiaalta risoluzio¬
ne con 16 colori. Sei soluzioni. Il pro¬
gramma, proposto nell'ambito del Pro¬
getto Seraphim, è un test che consiste
nel presentare allo studente quantità li¬
mitate di un certo numero di soluzioni in
provette numerate. Lo studente cono¬
sce le sostanze presenti e deve, usan¬
do esclusivamente le soluzioni a dispo¬
sizione, identificare il contenuto di cia¬
scuna provetta. Lire 30.000.
APPLICANDO 20
AP20/N44 Salute. Vaccinazioni, ma¬
lattie, analisi, terapie e soprattutto co¬
sti a non finire. Come ricordare tutto, re¬
gistrare e listare le spese mediche di
tutti i familiari? E al momento di pagare
le tasse... Variabili. Con questa utility
in Applesoft potrete visualizzare i
valori delle variabili per un'efficace
individuazione degli errori di un
programma. Grafica. Che cosa sono
le figure a blocco? Perché è importante
farne la conoscenza? Per chi possiede
l'Apple Ilo o il Ile con scheda 80 colon¬
ne continua l'entusiasmante viaggio
nel mondo dell'altissima risoluzione. Si¬
mulazione di un equilibrio. Un so¬
ftware didattico del progetto Seraphim
che crea la simulazione al computer di
un problema di equilibrio. Lire 30.000.
AP20/N45 Oroscopo. Scientificamen¬
te fondato, permette la creazione di u-
na carta del cielo natale che nulla invi¬
dia ai grafici tracciati dai professionisti.
E le tabelle con latitudini, longitudini, fu¬
si orari eccetera? Ci sono, ci sono...
Voce. Ora non gli manca più la parola:
con questa routine in linguaggio mac¬
china Apple//può finalmente pronuncia¬
re tutto quello che volete. L.30.000.
APPLICANDO 21
AP21/N46 Architetto. Un programma
per studiare sul video la disposizione di
mobili, porte, finestre e muri, spostan¬
doli a piacere, modificandone le dimen¬
sioni, duplicandoli, facendoli ruotare..
E poi, naturalmente, stampando il tut¬
to. Autocorsa. A tutta birra lungo una
pista con vere e proprie voragini e mas¬
si da schivare. A ogni videata cambia
la difficoltà del percorso, e la sosta ai
box riserva qualche interessante sor¬
presa. By-pass per il dump. Una
scorciatoia per accedere alla routine di
stampa, e solo a quella, senza bisogno
di attraversare prima tutto il program¬
ma: basta by-passarlo! Cursore. Per
lo spostamento del cursore Apple// u-
sa gli ingombranti comandi HTAB e
VTAB; è invece possibile utilizzare spe¬
ciali caratteri di controllo nelle stringhe
stampate, grazie a questo programma
in codice macchina. Grafica. Un altro
passo avanti verso la perfetta padro¬
nanza della grafica in altissima risolu¬
zione: come animare sullo schermo le fi¬
gure a blocchi e come dare l'impressio¬
ne che scorrano dietro un altro ogget¬
to. Curve di titolazione. Interessa
gli studenti (e gli insegnanti) di chimica
questo programma del Progetto Sera¬
phim: inserite le debite variabili, e asse¬
gnato il nome all'acido che si sta stu¬
diando, traccia sul piano cartesiano la
relativa curva di titolazione. Lire
30.000.
APPLICANDO 22
AP22/N47 Impegni. Polizze che sca¬
dono, appuntamenti, anniversari e com¬
pleanni. Per avere sempre sotto gli oc¬
chi un promemoria elettronico, ecco un
calendario intelligente. Azzardo. Il
computer diventa mazziere di Blackja-
ck, in una simulazione che ricalca fedel¬
mente il funzionamento delle slot machi¬
ne di Las Vegas. Effetti speciali.
L'importanza di una gradevole presen¬
tazione non va sottovalutata, quando
si realizza un programma. Consente lo
scorrimento orizzontale di una stringa,
alla velocità voluta, per vivacizzare un
menù, un titolo, oppure... Calenda¬
rio. Ecco un calendario perpetuo, per¬
fetto, veloce e sempre pronto. Grafi¬
ca. Creare intere immagini e figure a
blocco sullo schermo Hi-Res, e poi ani¬
marle. Chimica. Il famoso numero di
Avogadro e il concetto quantitativo di
mole: la visualizzazione aiuta a spiegar¬
li e ad apprenderli meglio. Lire 30.000.
95
(o]0§Gxserviee
APPLICANDO 23
AP23/N48 Obelisk. Un game spazia¬
le, alla caccia di obelischi da distrugge¬
re, con singoli colpi o con una mega¬
esplosione. Programmare l'Apple-
mouse. Come programmare suH’Àpple
in modo da utilizzare il mouse? In Apple¬
soft o in Assembler, ecco un aiuto pre¬
zioso per la programmazione e l'utilizzo
dell'Applemouse. Più che diapositi¬
ve. Per realizzare presentazioni con il
computer che siano qualcosa di più di
un continuo scorrere di diapositive: l'ef¬
fetto "solid state”! Grafica. Program¬
ma dedicato alla doppia alta risoluzio¬
ne: scorrimento orizzontale di scritte e
figure. Lire 30.000.
AP23/A49 Trasferimento da Apple
a Mac. Un programma eccezionale e
nuovissimo: trasferire testi dall'Apple
Ile e Ile al Macintosh è ora possibile e,
quel che più conta, semplice e ultrasi¬
curo. La confezione comprende un
dischetto da 3 pollici e mezzo e uno da
5 pollici e un quarto. Lire 50.000.
AP23/N50 Grafici 3D. Un programma
che consente la realizzazione di grafici
a tre dimensioni senza linee nascoste.
Quale elemento? Un trivia di chimi¬
ca, per ripassare giocando i nomi e le
caratteristiche di tutti gli elementi della
tavola chimica. Le domande le fa lo stu¬
dente, e dalle risposte del computer de¬
ve ricavare la soluzione finale. Lire
20 . 000 .
APPLICANDO 24
AP24/N51 Executive Card File.
Uno schedario eccezionale per Apple
//. E' strutturato in modo che le schede
possano essere riposte in dieci racco¬
glitori: un' infinità di dati con la
massima velocità di reperimento.
Apple Maestro. Tutti compositori,
con questo programma che insegna a
creare musica in modo professionale,
ma non per questo inaccessibile ai
profani. Lire 35.000.
AP24/N52 Dump 80 colonne. Un
programma per ottenere la stampa
della pagina schermo a ottanta
colonne: proprio quello che finora non
avreste potuto chiedere al vostro
Apple. Date and time. Senza più
dover ricorrere a costose schede
aggiuntive, potete inserire nel vostro
computer un calendario e, soprattutto,
un orologio. Grafica. Con l'aggiunta
delle routine per lo scorrimento
verticale il mondo della grafica in
doppia alta risoluzione non ha più
difficoltà né segreti. Lire 30.000.
AP24/N53 Prospettiva 3D. Questo
programma è il seguito naturale di
quello contenuto nel disco AP23/N50:
come disegnare intere prospettive
urbane, senza che il computer mostri i
lati e le facce che devono rimanere
nascosti. Test scolastici. Come
crearsi un trivia "aperto", cioè non
confinato a una sola materia e aperto a
ogni intervento. Un modo nuovo e intel¬
ligente per ripassare (o giocare) inter¬
rogandosi. Lire 20.000.
AP24/A55 Utility Dos 3.3. Questo
dischetto consente a tutti coloro che
hanno acquistato un Apple// dopo il
maggio 1984 di avere a disposizione il
sistema operativo Dos 3.3 indispen¬
sabile per ricopiare alcuni programmi
presentati da Applicando. Insieme al
sistema operativo vengono fornite
quattro interessanti utility per la
gestione dei file Dos. Il dischetto
contiene tutte le informazioni
necessarie. Lire 25.000.
APPLICANDO 25
AP25/N56 Chart Manager. Un pro¬
gramma professionale per la gestione
dei dati, aziendali o familiari: ordina, cal¬
cola, modifica e poi traccia il grafico
prescelto, a curve, a barre o a torta. In
ogni sua fase consente il dump grafico
dello schermo. Grafica. Quale logica
è preposta all'alta risoluzione nell'Ap¬
ple? Queste routine in linguaggio mac¬
china consentono un buon approccio al
problema attraverso la gestione delle fi¬
gure a blocchi. Lire 35.000.
AP25/N57 Apple Checker. Un vero
amico per chi copia da sé i programmi:
controlla se sono stati commessi errori
di battitura. Buffer di stampa. Spoo-
ler è un programma che utilizza la sche¬
da language card nell'Apple 64 per "par¬
cheggiare" i dati; così mentre stampate
potete continuare a lavorare sullo
schermo del computer. Cinetica. Un
interessante esperimento di laborato¬
rio: analizzate la variazione di velocità
in funzione delle concentrazioni dei
reattivi e della temperatura. L. 35.000.
Utility DOS 3.3
AP24/A55
Il sistema operativo ormai non
più fornito dalla Apple,
indispensabile per copiare alcuni
programmi di Applicando.
Nello stesso dischetto sono
comprese 4 utility
per la gestione dei file DOS.
APPLICANDO 26
AP26/N59 Ants. Un gioco ai confini del¬
la realtà, terrificante e divertente: gi¬
gantesche, spuntano dal vostro giardi¬
no delle omicide formiche mutanti. File
name mover. All'inizio l'Hello sta
scritto al primo posto nel Catalog, ma
poi si sposta... Per fare un po' di ordine
nei nomi dei file questa utility è indi¬
spensabile. Sistemi di equazioni li¬
neari. Molti sono quasi impossibili da
risolvere senza computer, per la loro in¬
terminabile complessità. Questo pro¬
gramma può affrontare fino a 70 equa¬
zioni, con fino a 70 variabili. E
naturalmente stamparle. Lire 35.000.
AP26/A60 Irpef (occorre VisiCalc). Il
tempo delle tasse, oltre ai noti dolori,
comporta perdite di tempo e disguidi:
per compilare più in fretta la dichiarazio¬
ne, e tenersi aggiornati con le aliquote
in corso, questo modello sfrutta la po¬
tenza del foglio elettronico. Lire
25.000.
AP26/A61 Irpef (occorre Apple-
Works). Lo stesso del precedente, ma
in versione AppleWorks. Lire 25.000.
—
Il dominio di
Mean dr o-AP26/A65
Un adventure game tutto italiano
migliore perfino, dei più
famosi adventure d'importazione.
Alla ricerca del grande segreto,
nascosto oltre lo specchio
e dentro la fantasia.
AP26/N64 Certificatore di dischet¬
ti. Aprire una seconda tacca nel di¬
schetto per sfruttare anche la memoria
della faccia posteriore? Con questo pro¬
gramma lo si può fare senza timori: con¬
trolla tutte le tracce e segna come già u-
tilizzati i settori eventualmente difetto¬
si. Grafica. L'animazione di figure a
blocchi si può gestire in più modi; ecco
alcune routine chiave, interdipendenti.
Lire 25.000.
AP26/A65 II dominio di Meandro.
Finalmente un adventure tutto italiano,
che però non ha nulla da invidiare ai
professionali d'importazione. Alla ricer¬
ca del Grande Segreto, nascosto oltre
lo specchio e dentro la fantasia. Lire
35.000.
APPLICANDO 27
AP27/N66 Chitarra. Un maestro ti in¬
segna gli accordi, mostrando sul video
in bassa risoluzione chiarissime istru¬
zioni grafiche per la diteggiatura; una
speciale routine, poi, controlla gli errori
commessi. Crono. Relegato nel Tarta¬
ro all'inizio dei tempi da Zeus, Crono ne
emerge oggi e sferra un attacco morta¬
le per il potere universale... Armati del
fulmine divino, dovete sconfiggerlo. Li¬
re 35.000.
AP27/N67 Reminder. Per tenere sot¬
to controllo la gestione domestica, ec¬
co un programma multiforme: è un ge¬
store prestiti, un custode delle scorte
freeezer, un programmatore per l'orto,
un’agenda delle incombenze e dei lavo¬
ri... Grafica. Tutte le immagini grafi¬
che, provenienti da qualsiasi program¬
ma, possono divenire tavole di figure a
blocco. Con questo programma, poi,
96
non occorre nemmeno conoscerne le
coordinate. Postmaster. Può estire
cento indirizzi, ordinarli in ordine alfabe¬
tico e modificarli quando serve, ma so¬
prattutto è un formidabile stampaeti-
chette, per ogni stampante. Apple-
trig. Seno e coseno, tangente e cotan¬
gente, secante e cosecante: tutte le
funzioni trigonometriche a portata di
mano. Lire 35.000.
APPLICANDO 28
AP28/N74 Supershopper. Un pro¬
gramma versatile e intelligente che pia¬
nifica gli acquisti per una gestione otti¬
male, senza sprechi né amare sorpre¬
se, del frigorifero e delle scorte free¬
zer. Planetario. La volta celeste sul¬
lo schermo, con i movimenti e le magni¬
tudini delle stelle, in una perfetta simu¬
lazione: basta impostare l'ora e le coor¬
dinate del luogo da cui si vuole osserva¬
re la notte. Lire 35.000.
AP28/N75 Millenote. Una routine per
la creazione di musica, completa di
staccato, corone, ritardi e pause, per
personalizzare giochi e programmi con
simpatici effetti sonori. Scatola ne¬
ra. Un classico gioco di deduzione nel¬
l'era atomica: dal grado di riflessione
del raggio lanciato dentro la scatola bi¬
sogna indovinare le posizioni degli ato¬
mi contenuti. Text file. Ottima routine
per la gestione dei listati come file di te¬
sto; rende più veloci e agevoli le corre¬
zioni. Grafica. L'animazione delle figu¬
re a blocco con effetti speciali. Lire
35.000.
AP28/A76 Gin. E' il gioco del momen¬
to, e ha un solo difetto: calcolare il pun¬
teggio è laboriosissimo. Nessun proble¬
ma, però, se si usa questo programma
contapunti. Lire 20.000.
PROGRAMMI PER
MACINTOSH
AP23/A49 Trasferimento da Apple
a Mac. Un programma eccezionale e
nuovissimo: trasferire testi dall'Apple
//e e Ho al Macintosh è ora possibile e,
quel che più conta, semplice e ultrasi¬
curo. La confezione comprende un
dischetto da 3 pollici e mezzo e uno da
5 pollici e un quarto. Lire 50.000.
AP24/N54 MacGraph. Un programma
favoloso per un uso professionale del
Macintosh: può creare ogni tipo di gra¬
fico, a linee, a barre o a torta, che poi si
può copiare e incollare in aualunque
altro documento (relazioni, documenti
da proiettare...). Lire 40.000.
AP25/N58 File Cabinet. Potenza e
versatilità caratterizzano il database
per Macintosh: strutturato come uno
schedario, permette un'archiviazione e
una gestione dati molto agile e intelli¬
gente. I criteri di classificazione, multi-
per i nostri
lettori
Abbonamento
DISK SERVICE
Applicando è lieto di offrire ai propri lettori la
possibilità di sottoscrivere un abbonamento
a 5 o 10 dischetti, a scelta fra quelli presentati nel
Disk Service, a un prezzo super vantaggioso:
120.000 lire per 5 dischetti Apple II
200.000 lire per 10 dischetti Apple II
175.000 lire per 5 dischetti Macintosh
300.000 lire per 10 dischetti Macintosh
Pagherete, rispettivamente, 24.000, 20.000, 35.000
o 30.000 lire a dischetto, Iva e spese di spedizione
comprese
qualunque sia il prezzo di vendita
del singolo dischetto.
Basta che compiliate il tagliando qui sotto e lo
inviate ad Applicando, abbonamenti Disk Service,
Corso Monforte 39, 20122 Milano, unitamente a un
assegno non trasferibile intestato a Editronica srl
e al vostro primo ordine.
Per ordinare i dischetti, adesso e in seguito
utilizzate il buono d'ordine pubblicato alle pagine
seguenti, specificando sempre che siete un
abbonato del Disk Service. L'abbonamento non ha
scadenza, quindi i 5 o 10 dischetti potete ordinarli
quando più vi aggrada.
Sì, desidero sottoscrivere il seguente
abbonamento al Disk Service:
□ 5 dischetti con programmi Apple II, per 120.000 lire
CU 10 dischetti con programmi Apple II, per 200.000 lire
□ 5 dischetti con programmi Macintosh, per 175.000 lire
di 10 dischetti con programmi Macintosh, per 300.000 lire
Nome_
Cognome_
Indirizzo-
Cap_ Città-PV_
Data
Firma
(slgCsservice
segue: Programmi per Macintosh
pii, consentono la massima personaliz¬
zazione. Lire 40.000.
AP26/A62 Bioritmi. Un programma
brioso, ma professionale neH'imposta-
zione e nella grafica. Allietato dal dise¬
gno dei simboli zodiacali, traccia te tre
famose curve fisico-emotivo-intelletti-
ve mese per mese, fa i confronti e dà il
consiglio del giorno. Lire 40.000.
AP26/A63 Irpef (occorre Multiplan). Il
tempo delle tasse, oltre ai noti dolori,
comporta perdite di tempo e disguidi:
per compilare più in fretta la dichiarazio¬
ne, e tenersi aggiornati con le aliquote
in corso, questo modello sfrutta la po¬
tenza del foglio elettronico. Lire
25.000.
AP27/A68 Leasing (occorre Multi¬
plan). Conti alla mano, qual è il tasso
reale che vi tocca pagare? La conve¬
nienza di ogni contratto di leasing con¬
teggiata su misura grazie a una applica¬
zione di matematica finanziaria sofisti¬
cata, ma semplice da usare. Lire
30.000.
AP27/N69 MacBanker. Un program¬
ma realmente all'avanguardia, che con¬
sente la stampa degli assegni su modu¬
lo continuo. Ma non solo: tutta la ge¬
stione del vostro conto in banca, con
verifica puntuale degli estratti conto
che vi vengono inviati, con registrazio¬
ne accurata di ogni vostro versamento
e di ogni assegno che emettete, è affi¬
data a MacBanker. Lire 40.000.
AP28/N77. Cronometro. Un prezioso
accessorio da aggiungere alla scriva¬
nia del Macintosh: tiene conto dei ses¬
santesimi di secondo e stampa i nomi
dei parziali. Radion Tyrant. Un avvin¬
cente gioco di strategia nella reggia del
tiranno, alla ricerca delle sue guardie.
Con griglia di gioco e griglia di controllo.
Lire 40.000.
AP28/A78 Gin. E' il gioco del momen¬
to, e ha un solo difetto: calcolare il pun¬
teggio è laboriosissimo. Nessun proble¬
ma, però, se si usa questo programma
contapunti. Lire 25.000.
Applicazioni Omnis3 pronte per l'uso
Applicando mette a disposizione dei lettori una serie di applicazioni già
pronte, preparate con OMNIS3, che toccano i più svariati campi. Saranno
tutte offerte a basso prezzo, e funzioneranno con il RUNTIME di Omnis3,
che acquistato una volta può essere poi usato anche con più di una appli¬
cazione. Ovviamente chi possiede il programma Omnis3 potrà fare a me¬
no di acquistare il RUNTIME, che può essere richiesto ai migliori compu¬
ter shop o direttamente a Editronica insieme alle applicazioni, utilizzan¬
do il tagliando del Disk Service.
Queste applicazioni e il RUNTIME non possono essere or¬
dinati usufruendo dell'abbonamento al Disk Service.
FATTURAZIONE E MAGAZZINO - AP27/A70
Questa applicazione è stata approntata per chi ha l'esigenza di dover
stampare molte fatture e magari ripetitivamente, andando a pescare i dati
da un magazzino per quanto riguarda gli oggetti o le prestazioni vendute,
e da un archivio clienti per ottenere in automatico i dati anagrafici di que-
st'ultimi. La procedura permette la personalizzazione della stampa delle
fatture. Funziona sia su Macintosh 512K sia con Macintosh Plus, con
doppio drive e stampante ImageWriter. Lire 272.500 Iva 9% e
spese di spedizione comprese.
PREVENTIVAZIONE - AP27/A71
Questa applicazione è stata studiata per chi ha l'esigenza di una gestio¬
ne del magazzino molto ampia e complessa. Infatti si possono gestire
procedure come il carico e lo scarico automatico dal magazzino, il con¬
trollo delle merci a stock, l'inventario di magazzino con la relativa movi¬
mentazione, le chiusure periodiche e annuali di tali movimenti, la gestio¬
ne dell'elenco Clienti e Fornitori, e la gestione di preventivi e di com¬
messe di vendita o acquisto. E' una procedura molto complessa ma nello
stesso tempo estremamente facile da usare grazie anche a una serie di indi¬
cazioni a video che permettono un uso guidato dell'applicazione; sicura¬
mente si rivela un valido strumento nella gestione di un magazzino anche
molto complesso, estremamente valido e professionale. Può funzionare
sia con il Macintosh da 512K che con il Plus, con ImageWriter, ma si
consiglia l'uso di un Hard-Disk o di drive da 800K per la registrazione dei
dati. Lire 272.500 Iva 9% e spese di spedizione comprese.
GESTIONE APPUNTAMENTI - AP27/A72
Per automatizzare e gestire in maniera efficace gli impegni lavorativi
nell'arco della giornata. Gli appuntamenti vengono suddivisi per Clienti,
Fornitori, Meeting interni all'ufficio e impegni personali. E' possibile ef¬
fettuare ricerche di appuntamenti nell'arco di un giorno, di una settimana,
di un mese. E' un ottimo complemento alle due procedure precedentemente
descritte. Funziona con Mac 512K o Plus con doppio drive e ImageWriter
. Lire 163.500 Iva 9% e spese di spedizione comprese.
RUNTIME OMNIS3 - AP27/A73
Serve a utilizzare, tutte le applicazioni create con Omnis3. Lire
381.500 Iva 9 % e spese di spedizioni comprese
Compilare e spedire il tagliando qui sotto a Applicando , Editronica srl, Corso Monforte 39, 20122 Milano
1
Vogliate inviarmi i seguenti dischetti:
N
klP
1
1/
1
N.
IaIp
1
1/
1
N.
Ia|p
1
M
1
N. |
A | P|
1
1
/I
11
N. |
A | P|
1
/I
1 1
N. |
A | P|
1
/I
1 1
N. |
IaIpi
1
u
l/l
1 1
lm
Sono abbonato al Disk Service: sì □ noD
Cognome.Nome.
Via.CAP.
Città.Prov.
Scelgo la seguente formula di pagamento:
UH allego assegno di L. non trasferibile intestato a Editronica Srl.
CU allego ricevuta di versamento di L.sul cc/p n. 19740208
intestato a Editronica sii, C.so Monforte 39, 20122 Milano.
EH pago fin d'ora l’importo di L. con la mia carta di credito
Bankamericard N.scadenza.
autorizzando la Banca d’America e d'Italia ad addebitarne l’importo sul mio conto.
Data.Firma.
I I Desidero fattura. Il mio codice fiscale/paitita Iva è:.
I
m 4n n :mm t so rm sas di tossi ; : ■
• Delle Piene 39-38
fm 29:08 «in "n«o 23 m
■m niCTin - fittrum 9K81239453
nnrr» 92 8565422 liirarTign m «kuii a t jrnhi
T^T»^-nn «pali :minrs - IW "C * <T
.^.1^71’mi^n aaows rtmtìrd ariaontili i mrtiali
v .'l..'7yi »::»» * interlw 'hwst
□ Tre programmi integrati in un unico pace
□ Tre strumenti all’unisono
□ Tre volte meno caro, a parità di potenza
□ Tre indiscutibili motivi per acquistarlo
editine di Hinm Un* giti liMrltd « ridHllt • «fluiti I
umuu 4 miw tene ni unni U tew mele i
ARCHIVIO
Schedario evoluto e veloce, per¬
sonalizzabile. Ricerche multichia-
ve, sort, aggiornamenti numerici
automatici, calcolatrice, stampe
personalizzabili etc.
GRAFICI
Tre tipi di grafici: barre, linee, torta
con personalizzazione di diciture,
valori e scale 2 o 3 dimensioni.
Stampe e comparazioni.
TESTI
Potentissimo editore di testi con
righelli, taglia, copia, incolla, giusti¬
ficazioni e word-wrap. Passaggio
dei testi all’archivio per un autenti¬
co mail-merge.
c
L.
246.800
Completamente in italiano - by HL software - Horizontal Line Software
distribuito da EMS - via Dalmazia,2 - 27029 Vigevano Telefono (0381) 80666
Parola di Macintosh
Microsoft.Word
&\V&
Sf f *
**
Chiunque abbia dimestichezza con il Macintosh sa perfettamente che Microsoft Word è di gran lunga il miglior
programma di elaborazione testi disponibile.
Non è necessario, per apprezzare la potenza di W ord, essere un romanziere alle prese con una storia di 400 pagine: è
sufficiente non voler investire il proprio tempo su programmi meno efficienti e, oltretutto, più complicati da usare.
Basta lavorare su più documenti contemporaneamente, componendo ad esempio una relazione con parti di altre già
scritte in precedenza, oppure inviare una lettera circolare, combinando il testo con la lista degli indirizzi, o gestire, con
una gamma impareggiabile di possibilità, una stampante laser.
Per non parlare della possibilità di crearsi un Glossario, cioè un archiv io di parole o frasi di uso ripetitivo, da richiamare
con un solo tasto.
Queste caratteristiche, e molte altre ancora, come la sua sorprendente semplicità di uso, fanno di W ord la scelta per
eccellenza per chi sappia di volere il meglio, e non esiti di fronte ad esso.
Microsoft Word è disponibile presso tutti gli Apple Centers ed i Distributori Autorizzati Microsoft.
MICROSOFT
Potenza e semplicità. Insieme
MICROSOFT S.p.A. - 20093 Cotogno M? (MI) - A ia Michelangelo, 1
tei. (02) 2549741 r.a. - fax (02) 2549745